GTK简介 - 层次、信号、事件
来源:互联网 发布:网络传销为什么没人管 编辑:程序博客网 时间:2024/04/30 16:15
下面的内容是初学GTK时给同学做的一个介绍内容,更为详细的可以参考:http://apps.hi.baidu.com/share/detail/19271271
要弄懂GTK,我们先从GTK的层次下手,先是几个概念:
XWindow系统
GDK
GLib
GTK+
XWindow系统:
X Window,即X Windows图形用户接口,它并不是一个软件,而是一个协议;
在最底层,X包括一种存在与客户端和服务器间的协议。X服务器是响应客户端请求并向用户提供可交互桌面的软件。
客户端可以发送请求来创建窗口,绘制文本和图形,这些窗口、文本和图形都会显示在服务器上;
一旦用户移动鼠标、按下按键或者单击鼠标,X服务器就会向客户端发送事件通知客户端;
客户就是通过Xlib提供的API向X服务器发送请求,并从X服务器那里接受错误消息和事件;
客户端和X服务器可以存在于一台计算机上,也可以在网络上的不同计算机上运行;
GDK:
GDK是标准Xlib函数调用的一个基本封装(wrapper);
Glib:
提供了一系列封装的函数和定义,以及对一些C标准库函数的封装,用于对上层绘图等的支持。
GTK+:
一个小型而高效的控件库,包含GTK与GDK层,GTK层封装了大量的Widget及相关操作,GDK层则如上所述,是对Xlib的封装。
下面介绍一下GTK的信号与回调函数原理,并从中解析GTK是如何工作的:
GTK是一个事件驱动的工具包,意味着它会等在gtk_main()那里,直到下一个事件发生,才把控制权传给适当的函数。
控制权的传递是使用“信号”的办法来完成的。当一个事件发生时,如按一下鼠标键,所按的构件会“发出”适当的信号。这就是GTK的工作机制。
有所有构件都继承的信号,如"destroy",有构件专有的信号,如开关(toggle)按钮发出的"toggled"信号。
上面提到了两个概念:事件与信号,无论在MFC,或者GTK中,这两个概念都有类似的区别,在GTK中:
“信号(Signals)和事件(events)有关是因为GTK控件 (GtkWidget)通常收到一个事件的时候发出一个信号。
事件驱动着Gtk的主循环,”等待事件,然后处理它”。GTK 是一个事件驱动的工具包,意味着它会等在gtk_main() 那里,直到下一个事件发生,才把控制权传给适当的函数。
信号只是保持了一个回调函数列表,然后调用回调函数(就是发出信号)。这样的作用是:控制权的传递是使用“信号”的办法来完成的。
说到这里,对于GTK的整体层次结构及工作原理,大家都应该有了一个简单的了解,具体工程应用,可以参考我上传的一份帮助文档,相信会有帮助:
http://download.csdn.net/detail/crazyingbird/4002710
- GTK简介 - 层次、信号、事件
- GTK GDK 事件 信号
- Gtk事件与信号关系
- gtk gdk 事件 信号分析
- gtk 事件信号,和回调
- 高级事件和信号处理@GTK+ 2.0 中文教程连载
- GTK+ 中的事件(events)和信号(signals)
- GTK+ 中的事件(events)和信号(signals)
- GTK+浅谈之二信号回调和事件
- GTK+简介
- GTK+简介
- GTK中的信号机制
- GTK Gossip: GTK 事件處理函式
- GTK 信号@GTK+ 2.0 中文教程连载
- gtk 编程笔记 4 信号
- gtk编程中的信号列表
- GTK (GIMP Toolkit) 简介
- gtk 鼠标事件
- MySQL命令修改密码与授权
- 网址资料
- 不错的显卡资料,备忘
- 云计算中心管理软件-RightScale
- 一不留神,自己就会变成老土了
- GTK简介 - 层次、信号、事件
- Android 获取网络连接方式、判断手机卡所属运营商
- string和byte[]的转换
- SQL查询分组后结果中某字段按照条件相加的实现
- 剪切单个文件(修改原来的文件名或是不修改)
- 如何创建组播应用程序(一)
- 设计模式之观察者模式
- regxpcom
- gawk