设置GtkToggleButton的状态而不触发回调

时间:2014-10-30 00:52:40

标签: gtk

我想设置GtkToggleButton的状态,而不会导致它发出任何信号。这可能吗?

这会导致信号被发出,正如我所期望的那样(C代码):

GtkToggleButton* but;
gboolean state = get_some_data();
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(but), state);

我也试过这个,效果相同:

g_object_set(but,"active", state, NULL);

有什么想法? (我对GTK完全不熟悉,如果这是一个愚蠢的问题,请原谅我。)谢谢!

我(姗姗来迟)发现了信号阻断机制:

g_signal_handlers_block_by_func( but, G_CALLBACK(my_callback), NULL);              
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(but), c);
g_signal_handlers_unblock_by_func( but, G_CALLBACK(my_callback), NULL);

这是否合适?

0 个答案:

没有答案