2

我在 treeView 中使用 Gtk Cell Renderer Toggle。当我单击切换按钮时,将选择放置切换按钮的行。我想防止这种行为。我通过在触发切换信号时返回 FALSE 来尝试它,因此不应通过复选框的父小部件(行、树视图)传播事件......但它不起作用。

我想保持选择功能启用,因此禁用此功能不是解决方案

这是我的做法:

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;

}

谢谢

4

1 回答 1

1

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

于 2014-07-16T16:06:22.887 回答