LINUX.ORG.RU

GtkTreeView: несколько вопросов


0

0

1. Нужно добавить пару столбцов в TreeView с помощью gtk_tree_view_insert_column_with_data_func(). Во всех случаях cell-renderer == GtkCellRendererText. Насколько правильно/неправильно перед каждый вызовом фунции создавать новый экземпляр renderer'а с помощью gtk_cell_renderer_text_new() ? Работает прекрасно как с одним экземпляром, так и с экземплярами для каждого столбца

2. Есть два, теоретически, эквивалентных по функционалу куска кода (добавление нового столбца с альтернативным set-func):

===> Первый:

cell_renderer = gtk_cell_renderer_text_new();

gtk_tree_view_insert_column_with_data_func(GTK_TREE_VIEW(app_data->list), -1, "Id", cell_renderer, (GtkTreeCellDataFunc)cell_id_set_func, NULL, NULL);

===> Второй:

column = gtk_tree_view_column_new();

gtk_tree_view_column_set_title(column, "Id");

gtk_tree_view_column_set_cell_data_func(column, cell_renderer, (GtkTreeCellDataFunc)cell_id_set_func, NULL, NULL);

gtk_tree_view_append_column(GTK_TREE_VIEW(app_data->list), GTK_TREE_VIEW_COLUMN(column));

Во втором случае получаю runtime-warning и в столбцах пусто: Gtk-CRITICAL **: gtk_tree_view_column_cell_layout_set_cell_data_func: assertion `info != NULL' failed

В чем здесь ошибка?

3. Как сделать, что бы пользователь мог менять ширину столбцов? Обыскался в документации: там, вроде как, говорится только про автоматическую установку ширины.

Спасибо.

anonymous

Re: GtkTreeView: несколько вопросов

На первый вопрос, листая самплы, кажется, нашел ответ. Новый экземпляр нужен когда на ячейки одного столбца нужно назначить обработчик сигналов. Например, cell-edited.

anonymous ()

Re: GtkTreeView: несколько вопросов

2. открой исходники этой функции в gtk+ и посмотри, что такое это info

3. gtk_tree_view_column_set_resizable (tree_column, TRUE);

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