您的位置:首页 > 其它

深入探索信号处理函数@GTK+ 2.0 中文教程连载

2010-12-20 14:22 337 查看

深入探索信号处理函数

让我们来看一下函数 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 );

所以,通过传递你想在上面删除处理函数的构件,以及某个 signal_connect 函数返回的标识,你就可以中断一个信号处理函数的连接。

你也可以用 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 );

<<< Previous
Home
Next >>>
继续Up
改进了的 Hello World
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: