信号的发射和传播@GTK+ 2.0 中文教程连载
来源:互联网 发布:异形大战铁血战士 知乎 编辑:程序博客网 时间:2024/05/16 04:32
信号的发射和传播
信号发射是 GTK 为指定的对象和信号运行所有处理函数的过程。
首先,注意从信号发射返回的值是最后一个处理函数执行后返回的值。因为所有事件信号都是 GTK_RUN_LAST 类型,GTK 提供的处理函数将成为默认处理函数,除非你用 gtk_signal_connect_after() 设置连接。
一个事件 (如"button_press_event") 的处理过程是:
从事件发生的构件开始。
发出通常的 "event" 信号。如果信号处理函数返回 TRUE 值,停止所有的处理。
否则,发出一个指定的,"button_press_event" 信号。如果它返回 TRUE,停止所有的处理。
否则,转到父构件,重复前两步。
继续直到某些信号处理函数返回 TRUE,或者直到达到了最顶层的构件。
上述问题的一些重点是:
如果信号有一个默认的处理函数,那么你的处理函数返回的值不起作用,除非你用 gtk_signal_connect_after() 设置连接。(译者注:这是因为默认处理函数最后运行,而信号发射的返回值取最后一个处理函数的返回值。)
为了阻止默认的信号处理函数运行,你需要用 gtk_signal_connect() 设置连接,并使用 gtk_signal_emit_stop_by_name() - 返回值只影响信号是否传播,不影响当前信号的发射。(译者注:也就是说,gtk_signal_emit_stop_by_name() 才影响信号的发射。停止发射,就使连接到这个信号的其它函数不继续被调用。)
<<< PreviousHomeNext >>>高级事件和信号处理Up操作选中区
- 信号的发射和传播@GTK+ 2.0 中文教程连载
- GTK 信号@GTK+ 2.0 中文教程连载
- 高级事件和信号处理@GTK+ 2.0 中文教程连载
- 信号和回调函数的原理@GTK+ 2.0 中文教程连载
- 深入探索信号处理函数@GTK+ 2.0 中文教程连载
- GTK rc 文件的格式@GTK+ 2.0 中文教程连载
- 编写 GTK 应用程序的技巧 @GTK+ 2.0 中文教程连载
- GTK+ 2.0 中文教程连载
- 教程的版权和许可声明@GTK+ 2.0 中文教程连载
- 键盘和鼠标绑定@GTK+ 2.0 中文教程连载
- 绘图区构件和绘图@GTK+ 2.0 中文教程连载
- 改进了的 Hello World@GTK+ 2.0 中文教程连载
- 盒的细节@GTK+ 2.0 中文教程连载
- 构件的组织@GTK+ 2.0 中文教程连载
- “调整对象”的内部机制@GTK+ 2.0 中文教程连载
- 常用的范围函数@GTK+ 2.0 中文教程连载
- 设置构件的属性@GTK+ 2.0 中文教程连载
- 编写你自己的构件 概述@GTK+ 2.0 中文教程连载
- 高级事件和信号处理@GTK+ 2.0 中文教程连载
- Linux vlan configuration
- falagard skinning ssytem for CEGUI 参考手册翻译(2)
- 为什么读不到.ashx文件中的session
- Linux vlan configuration
- 信号的发射和传播@GTK+ 2.0 中文教程连载
- PB中TriggerEvent用法详解
- oracle写个日历(转)
- 操作选中区 概述@GTK+ 2.0 中文教程连载
- 索尼即将针对iPhone, Android发布官方应用
- MyEclipse下Axis2插件的下载和安装
- ViewState Cookie Session
- U-boot on 64M pflash.
- 获取选中区信息@GTK+ 2.0 中文教程连载