当前位置: 技术问答>linux和unix
GTK+问题:delete_event到底是信号还是事件?
来源: 互联网 发布时间:2017-03-24
本文导语: GTK中有事件也有信号,它们的回调函数不一样。可是delete_event到底是事件还是信号呢? 搜了好久,都没有明确的说delete_event是信号还是事件,貌似大家都默认把它当信号。可它的回调函数却又是和信号的回调函数格...
GTK中有事件也有信号,它们的回调函数不一样。可是delete_event到底是事件还是信号呢?
搜了好久,都没有明确的说delete_event是信号还是事件,貌似大家都默认把它当信号。可它的回调函数却又是和信号的回调函数格式不一样。看一篇总结中,事件和信号大全中居然都有delete_event。
谁来说说真相?
搜了好久,都没有明确的说delete_event是信号还是事件,貌似大家都默认把它当信号。可它的回调函数却又是和信号的回调函数格式不一样。看一篇总结中,事件和信号大全中居然都有delete_event。
谁来说说真相?
|
楼主说的delete_event的事件回调函数和信号回调函数不同是指下面的吧
事件回调函数:
信号回调函数,一般为下面的形式:
GTK通过GDK来处理事件,GDK将收到的XEvent转换为GdkEvent,然后传给GtkWidget,引发一个与事件相对应的Signal。
事件类型与对应的Signal,基本上就是去掉GDK_,转换为小写并加上_event,如:GDK_DELETE --> delete_event
我之前说delete_event一样,是指名字。不知道我解释的清楚不清楚
事件回调函数:
gint callback_func( GtkWidget *widget,
GdkEvent *event,
gpointer callback_data );
信号回调函数,一般为下面的形式:
void callback_func( GtkWidget *widget,
gpointer callback_data );
GTK通过GDK来处理事件,GDK将收到的XEvent转换为GdkEvent,然后传给GtkWidget,引发一个与事件相对应的Signal。
事件类型与对应的Signal,基本上就是去掉GDK_,转换为小写并加上_event,如:GDK_DELETE --> delete_event
我之前说delete_event一样,是指名字。不知道我解释的清楚不清楚
|
我一直理解的是,事件的发生,emit了一个对应的信号,而在上层绑定了一个回调函数给这个信号。