Как получить GtkCellRenderer's GtkTreeViewColumn? - PullRequest
1 голос
/ 07 мая 2011

Некоторые ошибки в исходном коде gtk привели меня к мысли, что следующий код может получить столбец в модели, где хранится атрибут.

Однако, чтобы добраться до этой точки из обработчика сигнала, мне нужноGtkCellRenderer s родитель GtkTreeViewColumn

Я не знаю, как это сделать, кроме прямой передачи столбца древовидной структуры (что исключает мою возможность включать модель, которую необходимо обновить в первую очередь)) или прохождение самого GtkTreeView, который дал бы мне доступ к модели, но не GtkTreeViewColumn

Довольно сложная проблема.Конечно, если кто-то знает встроенную функцию GTK, чтобы перейти от GtkCellRenderer прямо к GtkListStore, это было бы намного лучше.treeviewcolumn напрямую, чтобы получить обе необходимые переменные, но у меня возникли проблемы с получением атрибутов средства визуализации ячеек.Как мне их вообще достать?

1 Ответ

1 голос
/ 09 мая 2011

Да, этот API, похоже, отсутствует. В моем коде я использую

GtkTreeViewColumn *column = gtk_tree_view_column_new();
GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
g_object_set_qdata_full(G_OBJECT(renderer), g_quark_from_static_string("column"), (gpointer)column, NULL);

и позже вы можете использовать

GtkTreeViewColumn* column = (g_object_get_qdata(G_OBJECT(renderer), g_quark_from_static_string("column"));

Чтобы получить столбец из объекта визуализации.

...