【OK210试用体验】+Linux嵌入式下QT图形界面开发(二) - 在线问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【OK210试用体验】+Linux嵌入式下QT图形界面开发(二)

李雷 ( 楼主 ) 2015-9-21 00:32:32  只看该作者 倒序浏览
8  布局
     Qt的布局管理用于组织管理一个父窗体区域内的子窗体。它的特点是可以自动的设置子窗体的位置和大小,并可判断出一个顶级窗体的最小和缺省的尺寸,当窗体的字体或内容变化后,它可以重置一个窗体的布局。使用布局管理,开发者可以编写独立于屏幕大小和方向之外的程序,从而不需要浪费代码空间和重复编写代码。对于一些国际化的应用程序,使用布局管理,可以确保按钮和标签在不同的语言环境下有足够的空间显示文本,不会造成部分文字被剪掉。布局管理使得提供部分用户接口组件,例如输入法和任务栏变得更容易。我们可以通过一个例子说明这一点,当Qtopia的用户正在输入文字时,输入法会占用一定的文字空间,应用程序这时也会根据可用的屏幕尺寸的变化调整自己。Qt提供了三种用于布局管理的类:QHBoxLayout, QVBoxLayout 和 QgridLayout。
     QHBoxLayout 布局管理把窗体按照水平方向从左至右排成一行
    QVBoxLayout 布局管理把窗体按照垂直方向从上至下排成一列
    QGridLayout 布局管理以网格的方式来排列窗体,一个窗体可以占据多个网格。
    在多数情况下,布局管理在管理窗体时执行最优化的尺寸,这样窗口看起来就更好看而且可以尺寸变化会更平滑。

9   Qt 图形设计器
     Qt 图形设计器是一个具有可视化用户接口的设计工具。Qt 的应用程序可以完全用源代码来编写,或者使用Qt图形设计器来加速开发工作。启动Qt 图形设计器的方法是:
在Linux 命令模式下,键入以下命令(假设Qt X11 安装在/usr/local 下):
cd qt-2.3.2/bin
./designer
这样就可以启动一个与Windows 下的Delphi 相类似界面。
     开发者点击工具栏上的代表不同功能的子窗体/组件的按钮,然后把它放到一个表单上面,这样就可以把一个子窗体/组件放到表单上了。开发者可以使用属性对话框来设置子窗体的属性。精确的设置子窗体的位置和尺寸大小是没必要的。开发者可以选择一组窗体,然后对他们进行排列。例如,我们选定了一些按钮窗体,然后使用“水平排列(layouthorizontally)”选项对它们进行一个接一个的水平排列。这样做使得设计工作变得更快,而且完成后的窗体将能够按照属性设置的比例填充窗口的可用尺寸范围。使用Qt图形设计器进行图形用户接口的设计可以消除应用的编译,链接和运行时间,同时使得修改图形用户接口的设计变得更容易。Qt图形设计器的预览功能可以使开发者能够在开发阶段看到各种样式的图形用户界面,包括客户样式的用户界面。通过Qt集成的功能强大的数据库类,Qt图形设计器还可提供生动的数据库数据浏览和编辑操作。
     开发者可以建立同时包含有对话框和主窗口的应用,其中主窗口可以放置菜单,工具栏,旁述帮助等等的子窗口部件。Qt图形设计器提供了几种表单模板,如果窗体会被多个不同的应用反复使用,那么开发者也可建立自己的表单模板,以确保窗体的一致性。Qt图形设计器使用向导来帮助人们更快更方便的建立包含有工具栏、菜单和数据库等方面的应用。程序员可以建立自己的客户窗体,并把它集成到Qt图形设计器中。Qt 图形设计器设计的图形界面以扩展名“ui”的文件进行保存,这个文件有良好的可读性,这个文件可被uic(Qt提供的用户接口编译工具)编译成为C++的头文件和源文件。Qmake 工具在它为工程生成的Makefile 文件中自动的包含了uic生成头文件和源文件的规则。另一种可选的做法是,在应用程序运行期间载入ui文件,然后把它转变为具备原先全部功能的表单。这样开发者就可以在程序运行期间动态修改应用的界面,而不需重新编译应用,另一方面,也使得应用的文件尺寸减小了。

10   建立对话框
     Qt 为许多通用的任务提供了现成的包含了实用的静态函数的对话框类。QmessageBox类是一个用于向用户提供信息或是给用户进行一些简单选择(例如“yes”或“no”)的对话框类。Qt提供的对话框还包括QColorDialog, QFileDialog, QFontDialog和QprintDialog。这些类通常适用于桌面应用,一般不会在Qt/Embedded中编译使用它们。

11  外形与感觉
Qt桌面应用随着执行环境(例如Windows XP, Mac OS X,Linux)的不同而具有不同的样式,或者叫做外形与感觉。Qt/Embedded的应用可以使用不同操作环境提供的样式,也可以以静态或插件的方式使用客户样式。开发者可以设计自己窗体的样式和窗口装饰。

12  窗体样式
     一个样式是一个实现Qt窗体外形与视觉效果的类Qstyle的子类。Qt/Embedded程序员可以自由的使用和修改目前存在的样式,也可以使用Qt样式设计引擎实现自己的样式。目前Qt/Embedded提供的样式类型有EmbeddedareWindows,Motif, MotifPlus,CDE, Platinum 和SGI。样式可以被动态的设置到一个应用中,甚至可以设置到特定的窗体上。通过给一组相关的应用编写一个客户样式,可以让这些应用的外观具有与众不同的感觉。建立客户样式可以通过子类化QStyle,QcommonStyle或者QcommonStyle的派生类来实现。通过重新实现现有样式基类的一两个虚函数可以很容易对现有样式做一些小的修改。一个样式可以编译成为一个插件,在Qt图形设计器中,把样式做成插件的话,开发者就可以以设备的客户样式来预览设计出来的表单。样式插件使得开发者不需重新编译就可改变设备的外观。Qt发布的窗体都是样式已知的,当它们的样式改变后,窗体会自动重绘。客户窗体和对话框大多数都是Qt原先发布的窗体和布局的重新整合。它们也是自动的获得原先的样式。在少数场合,当有必要写一个外观上很随意的窗体时,开发者可以使用QStyle去写一些用户接口元素,而不是直接的绘制固有的矩形。


(未完,待续!)

0个回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则


关闭

站长推荐上一条 /6 下一条

小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

GMT+8, 2024-12-22 11:20 , Processed in 0.542135 second(s), Total 46, Slave 33 queries .

Powered by 电子发烧友网

© 2015 bbs.elecfans.com

微信扫描
快速回复 返回顶部 返回列表