《Gtk基本构件》PPT课件

《Gtk基本构件》PPT课件

ID:46949592

大小:361.00 KB

页数:19页

时间:2019-12-01

《Gtk基本构件》PPT课件_第1页
《Gtk基本构件》PPT课件_第2页
《Gtk基本构件》PPT课件_第3页
《Gtk基本构件》PPT课件_第4页
《Gtk基本构件》PPT课件_第5页
资源描述:

《《Gtk基本构件》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章Gtk+基本构件12有窗口构件和无窗口构件根据是否有相关联的GdkWindow,构件可以分为“有窗口构件”和“无窗口构件”。GdkWindow窗口和GtkWindow窗口是不一样的。GdkWindow是一个X服务器用于划分屏幕的抽象概念。一个GdkWindow窗口,对X服务器给出了关于将要显示的图形的结构信息。大多数构件都有一个相关联的GdkWindow窗口,构件就绘制在这个窗口上。有一些构件没有与之相关联的GdkWindow,是相对轻量级的,如GtkLabel构件。“无窗口构件”绘制在它的父构件的GdkWindow窗口上。一些操作要求有一个GdkWindow窗口

2、(例如捕获事件,绘制背景色),因此不能在无窗口构件上做这些操作。§4.1构件的基本概念3构件的实现、映射和显示创建构件过程要经过一系列与它们的GdkWindow相关的状态。实现(realize):一个构件相应的GdkWindow被创建出来。用gtk_widget_realize()函数实现一个构件,用gtk_widget_unrealize()函数反实现(unrealized)构件。因为X窗口必须有一个父窗口,如果一个构件已经实现,它的父窗口也必然已实现。一般情况下,构件的实现过程是隐式发生的。映射(map):对构件调用了gtk_widget_map()函数。映射时会在

3、构件的GdkWindow上调用gdk_window_show()函数,这意味着服务器要求在屏幕上显示这个构件的GdkWindow窗口。显示(show):对构件调用了gtk_widget_show()函数。通过调用gtk_widget_hide()函数,一个构件可以绘制为不可见的。销毁构件过程与创建构件的过程相反。§4.1构件的基本概念4构件的实现、映射和显示一般只需调用gtk_widget_show()函数。这意味着当它的父构件一旦被实现和映射,该构件就被实现和映射。gtk_widget_show()函数并不会立即生效,它仅仅是确定构件被显示出来的时间。只有当构件的所有

4、父构件(直到最高级别的父构件)全部显示之后,它才会显示。因此,不用担心显示构件的顺序,但应尽可能先对子构件调用gtk_widget_show(),再对父构件调用gtk_widget_show()。调用gtk_widget_show()函数后还不能立即访问这个构件的GdkWindow窗口。如果确实需要在映射之前访问构件的GdkWindow窗口,要手工调用gtk_widget_realize()函数来创建这个GdkWindow。§4.1构件的基本概念5构件的实现、映射和显示显现、映射和显示构件的相关函数。§4.1构件的基本概念/*实现一个构件,创建该构件的GdkWindow

5、*/voidgtk_widget_realize(GtkWidget*widget)/*反实现构件,销毁该构件的GdkWindow*/voidgtk_widget_unrealize(GtkWidget*widget)/*映射构件,构件的GdkWindow显示在窗口上*/voidgtk_widget_map(GtkWidget*widget)/*反映射构件,隐藏构件的GdkWindow。但GdkWindow仍存在*/voidgtk_widget_unmap(GtkWidget*widget)/*显示构件,当构件的父构件(向上递归直到最高级别构件)显示时,*构件将显示在屏

6、幕上,*/voidgtk_widget_show(GtkWidget*widget)/*隐藏构件,构件的GdkWindow仍存在*/voidgtk_widget_hide(GtkWidget*widget)6其它概念敏感性构件可以是敏感的或不敏感的,不敏感的构件不能对输入进行响应。一般不敏感的构件是灰色的,不能接收键盘焦点。用gtk_widget_set_sensitive()函数改变构件的敏感性。构件缺省是敏感的。但只有构件的所有容器是敏感的,构件才能是真正敏感的。因此,容器的敏感性影响整个容器内所有构件的敏感性。可以用GTK_WIDGET_IS_SENSITIVE(

7、)宏测试构件的真正敏感性,用GTK_WIDGET_SENSITIVE()宏测试构件本身的敏感性。§4.1构件的基本概念/*设置构件的敏感性,widget参数是要设置的构件,setting设置为TRUE时,构件是敏感的,setting设置是FALSE时,构件不敏感*/voidgtk_widget_set_sensitive(GtkWidget*widget,gbooleansetting)GTK_WIDGET_IS_SENSITIVE(widget)GTK_WIDGET_SENSITIVE(widget)7其它概念焦点当前顶级窗口中某个构件

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。