0

たとえば、Gtk 2.0 では、セルのトグル イベントは、レンダリングされたセルとパスをコールバックに渡します。しかし、基になるモデル データを変更するには、このイベントが対象とするツリービューまたはモデルを知る必要があります。それを判断する適切な方法は何ですか?

編集:

明確にするために、GtkCellRenderer 切り替え*cell_rendererられたシグナルは、*path、の3 つのパラメータでコールバックを呼び出しますuser_data。このコールバックで、このシグナルを受信したツリービューに接続されているモデルを取得するにはどうすればよいですか?

4

1 に答える 1

0

「トグル」信号を接続すると、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 に答える