深入探索信号处理函数
让我们来看一下函数 gtk_signal_connect() 的声明。
gulong g_signal_connect( gpointer object,
const gchar *name,
GCallback func,
gpointer func_data );
注意返回值的类型 gulong,这是一个识别你的回调函数的标志。每个信号和每个
对象可以有多个回调函数,并且它们会按设置的顺序运行。
用这个标志,你可以用下面的函数从列表中删除回调函数:
void g_signal_handler_disconnect( gpointer object,
gulong id );
你也可以用 g_signal_handler_block() 和 g_signal_handler_unblock() 暂时断
开信号处理函数的连接。
void g_signal_handler_block( gpointer object,
gulong id );
void g_signal_handlers_block_by_func( gpointer object,
GCallback func,
gpointer data );
void g_signal_handler_unblock( gpointer object,
gulong id );
void g_signal_handlers_unblock_by_func( gpointer object,
GCallback func,
gpointer data );
博客深入探索了 GTK 信号处理函数,介绍了 g_signal_connect() 函数声明,其返回值 gulong 可识别回调函数。每个信号和对象可有多个回调函数并按序运行,还说明了用 g_signal_handler_disconnect() 删除回调,以及用 g_signal_handler_block() 和 g_signal_handler_unblock() 暂时断开连接的方法。
2344

被折叠的 条评论
为什么被折叠?



