【原创】Qt/Embedded对话框设计
0赞前一讲介绍了Qt/Embedded的图形界面的设计,现在我继续介绍Qt/Embedded对话框设计。
Qt的布局管理用于组织管理一个父窗体区域内的子窗体。它的特点是可以自动设置子窗体的位置和大小,并可确定出一个顶级窗体的最小和缺省的尺寸,当窗体的字体或内容变化后,它可以重置一个窗体的布局。
(1)内建布局管理器
Qt提供了3种用于布局管理的类:QHBoxLayout,QVBox-
Layout和QGridLayout:
QHBoxLayout 布局管理把窗体按照水平方向从左至右排成一行;QVBoxLayout布局管理把窗体按照垂直方向从上至下排成一列;QGridLayout布局管理以网格的方式来排列窗体,一个窗体可以占据多个网格。
(2)布局嵌套
布局可以嵌套任意层
这个对话框使用了3种布局:一个QVBoxLayout组合了按钮,一个QHBoxLayout组合了国家列表和那组按钮,一个QVBoxLayout组合了“Select a country”标签和剩下的部件。一个延伸项目用来维护Prev和Help按钮间的距离。
(3)自定义布局
通过子类化QLayout,开发者可以定义自己的布局管理器。和Qt一起提供的customlayout样例展示了三个自定义布局管理器:BorderLayout、CardLayout和SimpleFlow,程序员可以使用并修改它们。
Qt还包括QSplitter,是一个最终用户可以操纵的分离器。某些情况下,QSplitter可能比布局管理器更为可取。
为了完全控制,重新实现每个子部件的QWidget::resizeEvent()并调用QWidget::setGeometry(),就可以在一个部件中手动地实现布局。
Qt/Embedded图形设计器
· QMessageBox类:是一个用于向用户提供信息或是让用户进行一些简单选择(例如“yes”或“no”)的对话框类。
· QProgressDialog类:包含了一个进度栏和一个“Cancel”按钮。
这个设计的设计非常奇妙,深入其中你会追求精益求精,加油吧,筒子们。