delete event和destroy信号
来源:互联网 发布:做视频软件下载 编辑:程序博客网 时间:2024/06/05 11:18
0. 有关g_signal和gtk_signal
g_signal_emit之后,立即会调用g_signal_connect注册的回调函数。
gtk的signal也是gsignal, 当main_loop中收到x的event后,x_event->gdk_event ->g_signal
如delete_event和destroy两个gtk的信号实际定义如下:
它们一个是GObject的信号(destroy),一个是widget的信号(delete_event)
1. delete event的产生
(1) main_loop中收到x_event ClientMessage -->gdk_event GDK_CLIENT_EVENT
(2) gdk_event GDK_CLIENT_EVENT --> gdk_event GDK_DELETE
当收到client event后, 通过函数gdk_wm_protocols_filter判断其为WM_DELETE_WINDOW后,会进到 gtk_main_do_event中:
(3)gdk_event GDK_DELETE -->g_signal DELETE_EVENT
2. destroy signal的产生过程
(1)当gtk_widget_destroy(widget)调用后,gtk_object_destroy(object)被调用
(2)g_object_run_dispose
(3) 调用gtk Object的dispose函数gtk_object_dispose
GtkObject中, gobject_class->dispose= gtk_object_dispose
(4)上一步发出的DESTROY信号,gtk_object连接了一个默认的处理函数gtk_object_real_destroy
从上面的1(2)中的代码,可以看到,delete_event的回调函数返回FALSE时,gtk_widget_destroy会被调用,进而触发destroy信号的发出
- delete event和destroy信号
- Ruby on Rails delete 和 destroy 的区别
- rails中active_record的delete和destroy方法
- rails 中 delete 与 destroy区别
- 【STL】construct()和destroy()
- DestroyImmediate和Destroy区别
- event信号控制线程
- Event信号复位问题
- Destroy
- pthread_cond_init和pthread_cond_ destroy函数
- Unity DestroyImmediate和Destroy区别
- Destroy 和 DestroyImmediate 使用区别
- TObject的create和destroy
- Backup / delete event log files
- Libevent信号event的处理
- event 和 window.event
- event 和 window.event
- event 和 window.event
- win2003 sqlserver cpu 100%
- JQuery 常用方法基础教程
- 查询表结构和索引的语句(转自邹建的blog)
- Java和PHP在Web开发方面的比较
- JS: .onClick attachEvent和addEventListener三者面对不同浏览器的区别
- delete event和destroy信号
- dbunit 一篇文章
- ns2节点
- 定点数、浮点数和一些高级语言的实现
- 有感于SQL Server 的Sum函数的数据截取问题
- 默认配置文件struts-default.xml解析
- 用java取得linux系统cpu、内存的实时信息
- showModelDialog打开的页面中,提交Action(如上传文件)时不打开新页面的代码控制
- js教程