微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Qt图形编程基础之:Qt/Embedded开发入门

Qt图形编程基础之:Qt/Embedded开发入门

时间:09-13 来源:互联网 点击:

lp按钮间的距离。

下面的代码创建了对话框部件和布局:

QVBoxLayout*buttonBox=newQVBoxLayout(6);

buttonBox->addWidget(newQPushButton(OK,this));

buttonBox->addWidget(newQPushButton(Cancel,this));

buttonBox->addStretch(1);

buttonBox->addWidget(newQPushButton(Help,this));

QListBox*countryList=newQListBox(this);

countryList->insertItem(Canada);

/*...*/

countryList->insertItem(UnitedStatesofAmerica);

QHBoxLayout*middleBox=newQHBoxLayout(11);

middleBox->addWidget(countyList);

middleBox->addLayout(buttonBox);

QVBoxLayout*topLevelBox=newQVBoxLayout(this,6,11);

topLevelBox->addWidget(newQLabel(Selectacountry,this));

topLevelBox->addLayout(middleBox);

可以看到,Qt让布局变得非常容易。

(3)自定义布局。

通过子类化QLayout,开发者可以定义自己的布局管理器。和Qt一起提供的customlayout样例展示了3个自定义布局管理器:BorderLayout、CardLayout和SimpleFlow,程序员可以使用并修改它们。

Qt还包括QSplitter,是一个最终用户可以操纵的分离器。某些情况下,QSplitter可能比布局管理器更为可取。

为了完全控制,重新实现每个子部件的QWidget::resizeEvent()并调用QWidget::setGeometry(),就可以在一个部件中手动地实现布局。

2.Qt/Embedded图形设计器

Qt图形设计器是一个具有可视化用户接口的设计工具。Qt的应用程序可以完全用源代码来编写,或者使用Qt图形设计器来加速开发工作。启动Qt图形设计器的方法是:

cdqt-2.3.2/bin

./designer

这样就可以启动一个图形化的设计界面,如图12.14所示。

图12.14Qt图形设计器界面

开发者单击工具栏上的代表不同功能的子窗体/组件的按钮,然后把它拖放到一个表单(Form)上,这样就可以把一个子窗体/组件放到表单上了。开发者可以使用属性对话框来设置子窗体的属性,精确地设置子窗体的位置和尺寸大小是没必要的。开发者可以选择一组窗体,然后对它们进行排列。例如,我们选定了一些按钮窗体,然后使用“水平排列(layouthorizontally)”选项对它们进行一个接一个地水平排列。这样做不仅使得设计工作变得更快,而且完成后的窗体将能够按照属性设置的比例填充窗口的可用范围。

使用Qt图形设计器进行图形用户接口的设计可以消除应用的编译、链接和运行时间,同时使修改图形用户接口的设计变得更容易。Qt图形设计器的预览功能使开发者能够在开发阶段看到各种样式的图形用户界面,也包括客户样式的用户界面。通过Qt集成功能强大的数据库类,Qt图形设计器还可提供生动的数据库数据浏览和编辑操作。

开发者可以建立同时包含有对话框和主窗口的应用,其中主窗口可以放置菜单、工具栏、旁述帮助等子窗口部件。Qt图形设计器提供了几种表单模板,如果窗体会被多个不同的应用反复使用,那么开发者也可建立自己的表单模板以确保窗体的一致性。

Qt图形设计器使用向导来帮助人们更快、更方便地建立包含有工具栏、菜单和数据库等方面的应用。程序员可以建立自己的客户窗体,并把它集成到Qt图形设计器中。

Qt图形设计器设计的图形界面以扩展名为“ui”的文件进行保存,这个文件有良好的可读性,这个文件可被uic(Qt提供的用户接口编译工具)编译成为C++的头文件和源文件。qmake工具在它为工程生成的Makefile文件中自动包含了uic生成头文件和源文件的规则。

另一种可选的做法是在应用程序运行期间载入ui文件,然后把它转变为具备原先全部功能的表单。这样开发者就可以在程序运行期间动态地修改应用的界面,而不需重新编译应用,另一方面,也使得应用的文件尺寸减小了。

3.建立对话框

Qt为许多通用的任务提供了现成的包含了实用的静态函数的对话框类,主要有以下几种。

n QMessageBox类:是一个用于向用户提供信息或是让用户进行一些简单选择(例如“yes”或“no”)的对话框类,如图12.15所示。

n QProgressDialog类:包含了一个进度栏和一个“Cancel”按钮,如图12.16所示。

n QWizard类:提供了一个向导对话框的框架,如图12.17所示。

图12.15QMessageBox类对话框图12.16QProgressDialog类对话框图12.17QWizard类对话框

另外,Qt提供的对话框还包括QColorDialog、QFileDialog、QFontDialog和QPrintDialog。这些类通常适用于桌面应用,一般不会在Qt/Embedded中编译使用它们。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top