例如,在Gtk 2.0中,单元格切换事件会将呈现的单元格和回调路径传递给它。但是为了更改底层模型数据,我需要知道哪个树视图或此事件的模型。确定这个的正确方法是什么?
编辑:
为了澄清,GtkCellRenderer
切换信号使用3个参数调用回调:*cell_renderer
,*path
,user_data
。在此回调中,如何检索连接到接收此信号的树视图的模型?
答案 0 :(得分:0)
连接“切换”信号时,可以将GtkTreeView或模型作为user_data传递。我不是Gtk +使用C编程语言的专家:),但我想以下代码可以帮助你:
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));
...
}