界面构件开发_第1页
界面构件开发_第2页
界面构件开发_第3页
界面构件开发_第4页
界面构件开发_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第23章章 界面构件开发界面构件开发前一章内容已初步介绍了前一章内容已初步介绍了Linux图形界面,图形界面通图形界面,图形界面通常由窗体和安置在窗体上的多个界面构件所组成,本章将以常由窗体和安置在窗体上的多个界面构件所组成,本章将以GTK+为例详细讲解界面构件。界面构件是具有特定输入输为例详细讲解界面构件。界面构件是具有特定输入输出功能,并具备独特操作特性和视觉外观,以及独立输入输出功能,并具备独特操作特性和视觉外观,以及独立输入输出接口的一类可重用组合单元。例如窗体上的按钮、菜单和出接口的一类可重用组合单元。例如窗体上的按钮、菜单和状态栏等等,都是界面构件。通过使用界面构件可快速开发状态

2、栏等等,都是界面构件。通过使用界面构件可快速开发出图形界面,并使图形界面保持统一风格从而易于操作。出图形界面,并使图形界面保持统一风格从而易于操作。23.1 常用界面构件常用界面构件常用界面构件包括按钮构件、调整对象、范围构件和常用界面构件包括按钮构件、调整对象、范围构件和一些杂项构件,这些构件基本可满足大多应用程序需要。使一些杂项构件,这些构件基本可满足大多应用程序需要。使用界面构件包含以下几个步骤:用界面构件包含以下几个步骤:声明界面构件;声明界面构件;指定界面构件类型;指定界面构件类型;设置界面构件属性;设置界面构件属性;将界面构件放置到窗体;将界面构件放置到窗体;显示界面构件;显示界面

3、构件;捕获界面构件发出信号并连接到回调函数;捕获界面构件发出信号并连接到回调函数;在回调函数中读取界面构件数值。在回调函数中读取界面构件数值。按钮构件(按钮构件(GtkButton)是窗体中使用最频繁的构件之)是窗体中使用最频繁的构件之一,它分为一般按钮、开关按钮、复选按钮、单选按钮四个一,它分为一般按钮、开关按钮、复选按钮、单选按钮四个子类。子类。1一般按钮一般按钮2开关按钮开关按钮3复选按钮复选按钮4单选按钮单选按钮调整对象用来为可调整构件传递调整值,范围构件、调整对象用来为可调整构件传递调整值,范围构件、GtkText、GtkViewport等构件内部都具备可调整属性。调整等构件内部都具

4、备可调整属性。调整对象由对象由GtkObject派生,除具备自身的数据结构外,还具有派生,除具备自身的数据结构外,还具有一些特殊的功能,如引发信号。一些特殊的功能,如引发信号。常见的用法是将一个范围构件和调整对象相连,当用常见的用法是将一个范围构件和调整对象相连,当用鼠标或键盘改变范围构件时,调整对象发出信号改变可调整鼠标或键盘改变范围构件时,调整对象发出信号改变可调整构件属性。特别是当需要用一个调整值改变多个构件属性时构件属性。特别是当需要用一个调整值改变多个构件属性时,调整对象是最佳选择。,调整对象是最佳选择。范围构件包含两个子类,滚动条构件和比例构件。滚范围构件包含两个子类,滚动条构件和

5、比例构件。滚动条构件扩展了屏幕的可视区域,常用在文本和图形浏览中动条构件扩展了屏幕的可视区域,常用在文本和图形浏览中。比例构件较常见的用途是图形、视频缩放和音量大小调节。比例构件较常见的用途是图形、视频缩放和音量大小调节。范围构件的共同特征是包含一个滑槽和一个滑块,在滑块。范围构件的共同特征是包含一个滑槽和一个滑块,在滑块被移动后会改变调整对象的值,并发出信号。被移动后会改变调整对象的值,并发出信号。标签构件十分简单,作用是将一行或多行文本显示到标签构件十分简单,作用是将一行或多行文本显示到窗口的指定位置。标签构件不能发出信号,如果需要发出信窗口的指定位置。标签构件不能发出信号,如果需要发出信

6、号可将其放置在事件盒中。号可将其放置在事件盒中。创建一个新标签构件可使用函数创建一个新标签构件可使用函数gtk_label_new(),标签,标签构件创建后要改变显示文本,可使用函数构件创建后要改变显示文本,可使用函数gtk_label_set_text(),获取标签构件文本可使用函数,获取标签构件文本可使用函数gtk_label_get_text()。箭头构件的作用是在窗体上显示一个箭头,箭头的方箭头构件的作用是在窗体上显示一个箭头,箭头的方向可以是上、下、左、右。箭头构件本身不能发出信号,所向可以是上、下、左、右。箭头构件本身不能发出信号,所以常与按钮构件配合使用。以常与按钮构件配合使用。

7、工具提示对象是为界面构件显示提示信息,当鼠标指工具提示对象是为界面构件显示提示信息,当鼠标指针移动到界面构件上并停留时弹出。创建工具提示对象可使针移动到界面构件上并停留时弹出。创建工具提示对象可使用函数用函数gtk_tooltips_new(),创建后还须用函数,创建后还须用函数gtk_tooltips_set_tip()将工具提示对象与界面构件连接,没有将工具提示对象与界面构件连接,没有自己的自己的X窗口的构件不能使用工具提示对象。窗口的构件不能使用工具提示对象。进度条用于显示操作完成的比例,如图进度条用于显示操作完成的比例,如图23.8所示。进度所示。进度条由一个滑槽和一个滑块组成,滑块可

8、以向四个方向任意滑条由一个滑槽和一个滑块组成,滑块可以向四个方向任意滑动。创建进度条可使用动。创建进度条可使用gtk_progress_bar_new()函数函数, gtk_progress_bar_set_fraction()函数用于设置进度完成的比函数用于设置进度完成的比例,该比例的数值是范围在例,该比例的数值是范围在0至至1间的间的gdouble变量。变量。对话框是显示在窗体外的界面构件,用于显示提示信对话框是显示在窗体外的界面构件,用于显示提示信息和进行交互操作。对话框由窗体派生,与窗体十分相似,息和进行交互操作。对话框由窗体派生,与窗体十分相似,可在对话框上安置其他任何类型的界面构件

9、,区别是对话框可在对话框上安置其他任何类型的界面构件,区别是对话框必须有父窗体。新建空白对话框可使用函数必须有父窗体。新建空白对话框可使用函数“gtk_dialog_new()”。标尺构件常见于标尺构件常见于2D制图软件,用于在窗体中指示鼠标制图软件,用于在窗体中指示鼠标指针的位置,如图指针的位置,如图23.10所示。一个窗体可以有一个横跨整所示。一个窗体可以有一个横跨整个窗体宽度的水平标尺和一个占据整个窗体高度的垂直标尺个窗体宽度的水平标尺和一个占据整个窗体高度的垂直标尺。状态栏是显示文本消息的界面构件,一般位于窗体的状态栏是显示文本消息的界面构件,一般位于窗体的下方。状态栏用堆栈数据结构保

10、存字符串,需要显示的字符下方。状态栏用堆栈数据结构保存字符串,需要显示的字符串首先要被压入到堆栈中,因堆栈是先进后出(串首先要被压入到堆栈中,因堆栈是先进后出(FILO),),所以当弹出当前消息时,将重新显示前一条文本消息。所以当弹出当前消息时,将重新显示前一条文本消息。文本输入构件允许在一个单行文本框里输入和显示一文本输入构件允许在一个单行文本框里输入和显示一行文本。文本可以用函数进行操作,如将新的文本替换、前行文本。文本可以用函数进行操作,如将新的文本替换、前插、追加到文本输入构件的当前内容中。插、追加到文本输入构件的当前内容中。微调按钮构件通常用于让用户从一个取值范围里选择微调按钮构件通

11、常用于让用户从一个取值范围里选择一个值。它由一个文本输入框和旁边的向上和向下两个按钮一个值。它由一个文本输入框和旁边的向上和向下两个按钮组成。单击某一个按钮会让文本输入框里的数值大小在一定组成。单击某一个按钮会让文本输入框里的数值大小在一定范围里改变。文本输入框里也可以直接输入一个特定值。范围里改变。文本输入框里也可以直接输入一个特定值。组合输入框(组合输入框(GtkComboBoxEntry)是一个很简单的复)是一个很简单的复合构件,实际上它仅仅是其他几个构件的集合。组合输入框合构件,实际上它仅仅是其他几个构件的集合。组合输入框的父类是组合框(的父类是组合框(GtkComboBox),两者功

12、能类似,组合),两者功能类似,组合输入框能直接修改显示的内容所以更加方便。输入框能直接修改显示的内容所以更加方便。日历构件是显示和获取每月日期等信息的高效方法。日历构件是显示和获取每月日期等信息的高效方法。它是一个很容易创建和使用的构件,能够直观地在窗体中创它是一个很容易创建和使用的构件,能够直观地在窗体中创建一个日历卡,如图建一个日历卡,如图23.15所示。所示。颜色选择构件是一个用来交互式地选择颜色的构件。这个组颜色选择构件是一个用来交互式地选择颜色的构件。这个组合构件让用户通过操纵合构件让用户通过操纵RGB值(红、绿、蓝)和值(红、绿、蓝)和HSV值(色度、值(色度、饱和度、纯度)来选择

13、颜色。这是通过调整滑动条的值或者文本饱和度、纯度)来选择颜色。这是通过调整滑动条的值或者文本输入构件的值,或者从一个色度输入构件的值,或者从一个色度/饱和度饱和度/纯度条上选择相应的颜色纯度条上选择相应的颜色来实现的。来实现的。文件选择构件是一种快速、简单的显示文件对话框的方法。文件选择构件是一种快速、简单的显示文件对话框的方法。它带有与它带有与GNOME桌面环境标准的文件对话框,可以极大地减少桌面环境标准的文件对话框,可以极大地减少编程时间。编程时间。23.2 复合构件复合构件复合构件是由多个基本构件组合而成的构件,在面向复合构件是由多个基本构件组合而成的构件,在面向对象编程思想中,它类似于

14、多重继承方法,即从多个父类中对象编程思想中,它类似于多重继承方法,即从多个父类中继承特性。继承特性。GTK+的的复合构件复合构件并不是完全遵照多重继承方法并不是完全遵照多重继承方法而得来,它更接近于直接在源代码中进行多个构件的组合。而得来,它更接近于直接在源代码中进行多个构件的组合。复合构件有其新的特性和相关操作函数,并且有自己独特的复合构件有其新的特性和相关操作函数,并且有自己独特的信号和事件。本节将介绍几个常用的复合构件。信号和事件。本节将介绍几个常用的复合构件。快捷标签是一种可在文本右方显示快捷键,并能通过快捷标签是一种可在文本右方显示快捷键,并能通过使用快捷键实现与单击该标签相同作用的

15、界面构件。使用快捷键实现与单击该标签相同作用的界面构件。GTK+中实现的快捷键最简单的方法是通过中实现的快捷键最简单的方法是通过GtkAccelGroup对象,对象,它可以设置多组与窗体构件相关的快捷键。当用户按下某一它可以设置多组与窗体构件相关的快捷键。当用户按下某一组快捷键时,与该快捷键连接的信号会被抛出。组快捷键时,与该快捷键连接的信号会被抛出。绘图区构件是用来在窗体上画图的画布,它本身是一个空白绘图区构件是用来在窗体上画图的画布,它本身是一个空白的区域。的区域。字体选择对话框构件是用来选择文本字体的用户接口字体选择对话框构件是用来选择文本字体的用户接口,在文本编辑器、图形编辑器和各种需

16、要对文本字体提供用,在文本编辑器、图形编辑器和各种需要对文本字体提供用户自定义功能的软件中经常会用到字体选择对话框。户自定义功能的软件中经常会用到字体选择对话框。消息对话框是一种最简单的对话框,它通常用来向用消息对话框是一种最简单的对话框,它通常用来向用户传送一条消息,。户传送一条消息,。图像构件是用于在窗体中显示一幅位图图像的界面构件,图像构件是用于在窗体中显示一幅位图图像的界面构件,GTK+内部已包含了对多种格式的支持,所以像内部已包含了对多种格式的支持,所以像BMP、TIFF、JPEG、PNG和和GIF等图像格式它都能显示。等图像格式它都能显示。文本视区是用于显示或编辑多行文本的界面构件

17、,文文本视区是用于显示或编辑多行文本的界面构件,文本编辑器就是文本视区的典型应用。本编辑器就是文本视区的典型应用。23.3 菜单构件菜单构件菜单是计算机程序界面设计中最常用的导航工具,它菜单是计算机程序界面设计中最常用的导航工具,它用于将程序所有的功能分类列举出来。菜单通常由可供选择用于将程序所有的功能分类列举出来。菜单通常由可供选择的一组文字和符号组成,是一系列命令的列表。用鼠标单击的一组文字和符号组成,是一系列命令的列表。用鼠标单击其中一个选项后,就指定程序执行一个特定动作或功能。大其中一个选项后,就指定程序执行一个特定动作或功能。大多数程序提供下拉样式和弹出样式的菜单。下拉式菜单通常多数

18、程序提供下拉样式和弹出样式的菜单。下拉式菜单通常应用于菜单栏(一般在程序的最顶端),其中列出了整个程应用于菜单栏(一般在程序的最顶端),其中列出了整个程序最常用的操作。而弹出式菜单一般设定为鼠标按键动作出序最常用的操作。而弹出式菜单一般设定为鼠标按键动作出现时候弹出,提供与鼠标所选或所指内容相关的细节功能。现时候弹出,提供与鼠标所选或所指内容相关的细节功能。菜单栏(菜单栏(GtkMenuBar)是放置菜单构件的容器,它本)是放置菜单构件的容器,它本身不显示任何内容,但会在窗体构件中占用一定面积的区域身不显示任何内容,但会在窗体构件中占用一定面积的区域。在菜单栏中放置菜单构件后,菜单构件按照指定

19、的顺序排。在菜单栏中放置菜单构件后,菜单构件按照指定的顺序排列在菜单栏中,如图列在菜单栏中,如图23.26所示。所示。菜单构件(菜单构件(GtkMenu)与菜单栏一样是容器构件,并)与菜单栏一样是容器构件,并且同为且同为GtkMenuShell类的子类。菜单构件用于存放菜单项类的子类。菜单构件用于存放菜单项。当菜单构件被按下时,菜单构件内的菜单项被弹出,如图。当菜单构件被按下时,菜单构件内的菜单项被弹出,如图23.27所示。所示。菜单项(菜单项(GtkMenuItem)是组成菜单的基本元素,创建空白)是组成菜单的基本元素,创建空白菜单项可使用菜单项可使用gtk_menu_item_new()函

20、数实现。函数实现。gtk_menu_item_new_with_label()函数用于创建时设定菜单项的标函数用于创建时设定菜单项的标签,如果要设置一个带热键的标签可使用签,如果要设置一个带热键的标签可使用gtk_menu_item_new_with_mnemonic()函数。函数。图形菜单项(图形菜单项(GtkImageMenuItem)是菜单项的子类,)是菜单项的子类,它用以在菜单项中放置一个图像。创建图形菜单项可使用它用以在菜单项中放置一个图像。创建图形菜单项可使用gtk_image_menu_item_new(),或者使用,或者使用gtk_image_menu_item_new_wit

21、h_label()函数、函数、gtk_image_menu_item_new_with_mnemonic()函数在创建时函数在创建时指定菜单项标签。指定菜单项标签。复选菜单项(复选菜单项(GtkCheckMenuItem)也是菜单项的子类)也是菜单项的子类,与菜单项的区别在于,它所包含的子成员是一个复选按钮,与菜单项的区别在于,它所包含的子成员是一个复选按钮构件而不是标签构件。构件而不是标签构件。单选菜单项(单选菜单项(GtkRadioMenuItem)是复选菜单项的子)是复选菜单项的子类,它的成员是单选按钮构件。与单选按钮相似,必须为其类,它的成员是单选按钮构件。与单选按钮相似,必须为其创建

22、一个创建一个GSList链表。链表。gtk_radio_menu_item_new()函数用函数用于创建一个单选菜单项。如果要在创建时设置标签,可使用于创建一个单选菜单项。如果要在创建时设置标签,可使用gtk_radio_menu_item_new_with_label()。分隔菜单项(分隔菜单项(GtkSeparatorMenuItem)是从菜单项继)是从菜单项继承而来的简单构件,它用来在菜单中插入一个分隔符。分隔承而来的简单构件,它用来在菜单中插入一个分隔符。分隔菜单项的子成员即分隔符,它没有任何的信号,也不能被选菜单项的子成员即分隔符,它没有任何的信号,也不能被选择。择。23.4 RC文件文件RC文件(文件(Resource Files)是用来定义界面构件的字体)是用来定义界面构件的字体、颜色、背景图等样式风格的配置文件。它与网页设计中使、颜色、背景图等样式风格的配置文件。它与网页设计中使用的用的CSS样式表非常相似,都是以符号语言来描述对象的风样式表非常相似,都是以符号语言来描述对象的风格。这样做的优势在于可以很容易的为一个程序提供多种不格。这样做的优势在于可以很容易的为一个程序提供多种不同类型的界面样式风格,以满足不同用户的审美需求。另一同类型的界面样式风格,以满足不同用户的审美需求。另一个优势是能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论