/*
Есть список (GtkListStore), заполненный тремя элементами.
Никак не могу понять, как менять атрибуты (цвет, background, шрифт) текстовых элементов (именно ячеек, не столбцов).
Понимаю что надо определенным образом задать параметры в gtk_list_store_new, gtk_list_store_set,
возможно в gtk_tree_view_column_new_with_attributes, но как?
Если можно, измените приведенный пример так, чтобы первый элемент (123 qwe) имел цвет текста - красный,
второй (456 asd) - background синим,
третий (789 zxc) - шрифт в стиле underline + bold.
*/
enum {
COLUMN_KEY,
COLUMN_ACTION,
NUM_COLUMS
};
//виджет-окно, содержащее список
GtkWidget *scrolled_wnd_with_list_store() {
GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
GtkCellRenderer *cell;
GtkTreeViewColumn *column;
GtkWidget *tree_view = gtk_tree_view_new ();
gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view);
GtkListStore *model = gtk_list_store_new (NUM_COLUMS, G_TYPE_STRING, G_TYPE_STRING);
gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (model));
gtk_widget_show (tree_view);
GtkTreeIter iter;
//добавляем элементы в ListStore
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_KEY, "123", COLUMN_ACTION, "qwe", -1);
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_KEY, "456", COLUMN_ACTION, "asd", -1);
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_KEY, "789", COLUMN_ACTION, "zxc", -1);
cell = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("1", cell, "text", COLUMN_KEY, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), GTK_TREE_VIEW_COLUMN (column));
cell = gtk_cell_renderer_text_new ();
column = gtk_tree_view_column_new_with_attributes ("2", cell, "text", COLUMN_ACTION, NULL);
gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), GTK_TREE_VIEW_COLUMN (column));
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (tree_view), TRUE);
return scrolled_window;
}
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Вывод значение в многоколлоный список (GTK) (2008)
- Форум вопрос по программированию gtk+ (2003)
- Форум GtkTreeView (2006)
- Форум GTK. Изменить цвет текста в таблице (дереве). (2015)
- Форум GTK Windows русские буквы (2007)
- Форум [GTK+] Вывод альтернативного значения в GtkTreeView при пустом поле в GtkListStore (2011)
- Форум В продолжении gtk+-2.0 (2003)
- Форум GTK+ TreeView (2005)
- Форум Проблема при использовании GTK+ под Windows (2018)
- Форум GTK приложение падает из-за вызова gtk_widget_destroy (2008)