LINUX.ORG.RU

Вывод значение в многоколлоный список (GTK)


0

0

Собственно как добавлять строки со значениями? Вот пример кода:

#include <gtk/gtk.h>

int main (int argc, char *argv[])
{
   GtkWidget *window;
   GtkCellRenderer *renderer;
   GtkTreeViewColumn *column;
   GtkListStore *store;
   GtkTreeIter iter; 

   gtk_init (&argc, &argv);
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_default_size (GTK_WINDOW (window), 400, 200);
   
   GtkWidget *list = gtk_tree_view_new();
   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), TRUE);
   gtk_container_add( GTK_CONTAINER(window), list );
   
   // columns
   renderer = gtk_cell_renderer_text_new();
   column = gtk_tree_view_column_new_with_attributes("Поле 1", renderer, "text", 1, NULL);
   gtk_tree_view_append_column(GTK_TREE_VIEW(list), column);
   
   renderer = gtk_cell_renderer_text_new();
   column = gtk_tree_view_column_new_with_attributes("Поле 2", renderer, "text", 1, NULL);
   gtk_tree_view_append_column(GTK_TREE_VIEW(list), column);
   
   renderer = gtk_cell_renderer_text_new();
   column = gtk_tree_view_column_new_with_attributes("Поле 3", renderer, "text", 1, NULL);
   gtk_tree_view_append_column(GTK_TREE_VIEW(list), column);
   
   store = gtk_list_store_new( 3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING );
   gtk_tree_view_set_model(GTK_TREE_VIEW(list), GTK_TREE_MODEL(store));
   gtk_list_store_append(store, &iter);
   gtk_list_store_set(store, &iter, 0, "", 1, "", 2, "2",  -1);   
   gtk_list_store_append(store, &iter);
   gtk_list_store_set(store, &iter, 0, "0", 1, "1", 2, "2",  -1);   
   gtk_list_store_append(store, &iter);
   gtk_list_store_set(store, &iter, 0, "0", 1, "", 2, "2",  -1);   

   gtk_widget_show_all(window);

   gtk_main();
   return 0;
}


И получаю список с тремя строками. В первой ничего, во второй в трех колонках "2", в третей ничего. Что єто такое? 
★★

> column = gtk_tree_view_column_new_with_attributes("Поле 2", renderer, "text", 1, NULL);

Вот тут 1 обозначает, что значение берётся из 1-й колонки ListStore. Т.е. все три колонки показывают одно и то же.

k_andy ★★★
()

Заполняешь верно, просто в TreeView неверно упаковал Column

Deleted
()

Выводить текст в несколько колонок - не по хигу, ибо это фрустрирует клинических идиотов.

anonymous
()
Ответ на: комментарий от anonymous

аноним, какой в зад хиг в этом коде? человек познает суть, как оно работает. вот когда будет ваять "на чистовую", вот тогда будем канделябрами бить за несоответствие хигу )

Deleted
()
Ответ на: комментарий от k_andy

Да, действительно. Спасибо за подсказку.

mrco ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.