单击toggleButton时防止选择GtkTreeRow

时间:2014-07-09 14:47:58

标签: events treeview gtk toggle propagation

我在treeView中使用Gtk Cell Renderer Toggle。当我单击切换按钮时,将选择放置切换按钮的行。我想阻止这种行为。当触发切换信号时,我通过返回FALSE来尝试它,因此事件不应该通过复选框的父窗口小部件(行,树视图)来支持......但它没有工作。 / p>

我希望启用选择功能,因此禁用此功能不是解决方案

我是这样做的:

renderer = gtk_cell_renderer_toggle_new();;
g_signal_connect (G_OBJECT(renderer), "toggled", (GCallback)(update_result_list_model), NULL);

这是回调,它不会阻止事件传播:

extern "C" gboolean update_result_list_model(GtkCellRendererToggle *cell,
    gchar *path_str,
    gpointer data)
{
    // Do some job....

    return false;

}

由于

1 个答案:

答案 0 :(得分:1)

最后,我通过使用一个名为“selectingCheckbox”的布尔标志来获取它。最初我把它设置为FALSE。在切换信号回调时,我将其设置为TRUE。在行选择回调(不在切换信号回调)中,我检查该标志的值。如果标志为FALSE,我通过返回true来选择行。如果该标志为真,我不会通过返回false来选择该行,并将该标志设置为false

相关问题