当前位置: 技术问答>linux和unix
gtk编程问题3?
来源: 互联网 发布时间:2015-02-14
本文导语: 请问gtk下信号处理的机制是怎样的?怎样在控件的回调函数里给其它控件发送消息? 如果我想自己注册一个消息,并发送给控件,怎样做? 另外,请推荐几本学习gtk编程的书,最好是中文的。 | ...
请问gtk下信号处理的机制是怎样的?怎样在控件的回调函数里给其它控件发送消息?
如果我想自己注册一个消息,并发送给控件,怎样做?
另外,请推荐几本学习gtk编程的书,最好是中文的。
如果我想自己注册一个消息,并发送给控件,怎样做?
另外,请推荐几本学习gtk编程的书,最好是中文的。
|
问题1:gtk下信号的处理机制的确是一个易意会难言传的东西,别介意我这么说。信号的发出大概有两种方式,一种是系统相应界面而自动发出的,如“clicked”等,一种是用户主动发出的,通过编程实现,方法是使用gtk_signal_emit。
问题2:使用gtk_signal_emit( *obj,signal_type,envent,data)来向obj控件发送signal_type信号,再为该信号定义相应函数即可。
问题3:你可以为信号,事件,控件注册一个到多个回调函数,但消息的注册这个问题,也许gtk可以,但我还没有见过,因为与相应界面相关的消息gtk都已经定义好了,我觉得你现在面临的真正的问题可能是不知道gtk都定义了哪些消息,这些消息应该怎么用吧,这个我也无法给你满意答案,我也知之甚少,呵呵,不过我可是劲力了哦。
要想学好gtk以及任何前沿知识,最好的方法是上网查国外的资料,这方面的文档在国外网站比较多,没有好的英语阅读能力会限制提高自己的专业水平的。
问题2:使用gtk_signal_emit( *obj,signal_type,envent,data)来向obj控件发送signal_type信号,再为该信号定义相应函数即可。
问题3:你可以为信号,事件,控件注册一个到多个回调函数,但消息的注册这个问题,也许gtk可以,但我还没有见过,因为与相应界面相关的消息gtk都已经定义好了,我觉得你现在面临的真正的问题可能是不知道gtk都定义了哪些消息,这些消息应该怎么用吧,这个我也无法给你满意答案,我也知之甚少,呵呵,不过我可是劲力了哦。
要想学好gtk以及任何前沿知识,最好的方法是上网查国外的资料,这方面的文档在国外网站比较多,没有好的英语阅读能力会限制提高自己的专业水平的。
|
Gtk+里面没有消息的概念,有的只是信号和事件的概念
你可以使用g_signal_new等等相关函数来增加一个信号,不过这个函数大部分只是用在你自己编写控件的时候才会用到。如果你是想在程序运行的时候自己增加信号可以采用gtk_object_class_user_signal_new()
http://developer.gnome.org/doc/API/2.0/gtk/gtk-Signals.html
你可以使用g_signal_new等等相关函数来增加一个信号,不过这个函数大部分只是用在你自己编写控件的时候才会用到。如果你是想在程序运行的时候自己增加信号可以采用gtk_object_class_user_signal_new()
http://developer.gnome.org/doc/API/2.0/gtk/gtk-Signals.html
|
有本pdf的电子书,
《LINUX应用程序开发指南:使用GTK+ GNOME库》
《LINUX应用程序开发指南:使用GTK+ GNOME库》
|
下载的地址在:
www.dingbing.com
www.dingbing.com
|
两位兄抬说的不错。
有空来我的论坛坐坐。
http://hackerbbs.uni.cc
有空来我的论坛坐坐。
http://hackerbbs.uni.cc