例如,在 Gtk 2.0 中,单元格切换事件将渲染的单元格和路径传递给回调。但是为了改变底层模型数据,我需要知道这个事件是针对哪个树视图或哪个模型的。确定它的正确方法是什么?
编辑:
澄清一下,GtkCellRenderer
切换信号调用带有 3 个参数的回调:*cell_renderer
、*path
、user_data
。在此回调中,如何检索连接到接收此信号的树视图的模型?
例如,在 Gtk 2.0 中,单元格切换事件将渲染的单元格和路径传递给回调。但是为了改变底层模型数据,我需要知道这个事件是针对哪个树视图或哪个模型的。确定它的正确方法是什么?
编辑:
澄清一下,GtkCellRenderer
切换信号调用带有 3 个参数的回调:*cell_renderer
、*path
、user_data
。在此回调中,如何检索连接到接收此信号的树视图的模型?
当您连接“toggled”信号时,您可以将 GtkTreeView 或模型作为 user_data 传递。我不是使用 C 编程语言的 Gtk+ 专家 :),但我想以下代码会对您有所帮助:
void cb_toggled (GtkCellRendererToggle *cell_renderer,gchar *path, gpointer user_data)
{
GtkListStore *store = (GtkListStore *) user_data;
...
}
int main(int argc, char **argv)
{
...
g_signal_connect(G_OBJECT(cell_renderer), "toggled", G_CALLBACK(cb_toggled), (gpointer)gtk_tree_view_get_model(treeview));
...
}