snifer

【原创】Qt/Embedded对话框设计

0
阅读(3254)

前一讲介绍了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”按钮。

·QWizard类:提供了一个向导对话框的框架。
·另外,Qt提供的对话框还包括QColorDialog、QFileDialog、QFontDialog和QPrintDialog。 



这个设计的设计非常奇妙,深入其中你会追求精益求精,加油吧,筒子们。