GTK_图形化应用程序开发学习笔记(四)—容器、构件.docVIP

GTK_图形化应用程序开发学习笔记(四)—容器、构件.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
GTK_图形化应用程序开发学习笔记(四)—容器、构件

GTK_图形化应用程序开发学习笔记(四)—容器、构件 GTK+图形化应用程序开发学习笔记(四)—容器、构件GTK+图形化应用程序开发学习笔记(四)—容器、构件 GTK+图形化应用程序开发学习笔记(四)—容器、构件 一、构件 上一章我们介绍了如果创建一个窗体,但应用程序仅有一个窗体是不够的我们必须在窗体上添加一些东西(如:按钮,文本框等)。这些东西被称为构件,而我们添加的构件的载体被称为容器(如:主窗体)。 构件(GtkWidget)有一些统一的函数对其操作,通常情况下我们定义一个GtkWidget类型的构件指针。再根据不同的需要进行转换。 添加一个构建分5个步骤。 1、建立构件,并取得GtkWidget指针。 2、对构件设置回呼函数。一些构件不能有回调函数;一些构件不需要回调函数;但是,许多构件用回调函数与用户进行对话。 3、设置构件的特性。例如,对按钮设置标号,或使标号左对齐等。有时可以用建立构件的函数设置特性。 4、将构件加到容器中。除非构件是顶层窗口,所有其他构件都必须将它们加到可视容器内才能显示。 5、使构件成为可见。使构件成为可见通常被最后,因为它改变了窗口的性质。 二、构件的敏感性 构件可以是敏感或不敏感的,不敏感的构件不能对输入进行响应。一般不敏感的构件是灰色的。用gtk_widget_set_sensitive 函数改变构件的敏感性。 1. 名称:: gtk_widget_set_sensitive 功能: 改变构件的敏感性 头文件: #include lt;gtk/gtk.hgt; 函数原形: void gtk_widget_set_sensitive(GtkWidget *widget,gboolean setting); 参数: widget 构件 gboolean 构件的敏感性 返回值: 无 构件缺省是敏感的。只有构件的所有容器是敏感的,构件才能是敏感的。也就是,可以通过设置容器的敏感性来让整个容器内的构件敏感(或不敏感)。 请看下面的程序例子: #include lt;gtk/gtk.hgt; int main(int argc,char *argv[ ]) { GtkWidget *window; GtkWidget *button; gtk_init(amp;argc,amp;argv); window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_signal_connect(GTK_OBJECT(window),”destroy”,G_CALLBACK(gtk_main_quit),NULL); button=gtk_button_new_with_label(“button”); gtk_container_add(GTK_CONTAINER(window),button); gtk_widget_set_sensitive(button,FALSE); gtk_widget_show(button); gtk_widget_show(window); gtk_main(); } 运行程序后会得到如下界面,可以看到按纽是灰色的,并且不可以用。 三、构件的类型转换 在GTK中,所有构件的存储形式都是GtkWidget,但是许多函数都需要指向某种构件类型(比如GtkButton)的指针作为参数。虽然所有构件都是从GtkWidget派生而来的,但是编译器并不理解这种派生和继承关系。为此,GTK引进了一套类型转换系统。这些系统都是通过宏实现的。这些宏测试给定数据项的类型转换能力,并实现类型转换。 下面几个宏我们以后会经常遇到: GTK_WIDGET(winget) GTK_OBJECT(object GTK_SIGNAL_FUNC(function) GTK_CONTAINER(window) GTK_BOX(box) 四、统一构件函数 2. 名称:: gtk_widget_destroy 功能: 删除一个构件 头文件: #include lt;gtk/gtk.hgt; 函数原形: void gtk_widget_destroy(GtkWidget *widget); 参数: widget 构件 返回值: 无 gtk_widget_destroy函数可以删除一个构件,它非常简单,我们这里就不再介绍了。 3. 名称:: gtk_widget_hide 功能: 隐藏一个构件 头文件: #include lt;gtk/gtk.hgt; 函数原形: void gtk_widget_hide (GtkWidget *widget); 参数: widget 构件 返回值: 无 gtk_widget_hide函数可以

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档