0

例如,在 Gtk 2.0 中,单元格切换事件将渲染的单元格和路径传递给回调。但是为了改变底层模型数据,我需要知道这个事件是针对哪个树视图或哪个模型的。确定它的正确方法是什么?

编辑:

澄清一下,GtkCellRenderer 切换信号调用带有 3 个参数的回调:*cell_renderer*pathuser_data。在此回调中,如何检索连接到接收此信号的树视图的模型?

4

1 回答 1

0

当您连接“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));
    ...
}
于 2012-02-29T23:54:46.237 回答