Qt提供了三种布局方式:
(一) 绝对位置:QWidget基类提供了一个setGemetry函数,设置子窗口部件的大小以及子窗口部件在父窗口的位置。
(二) 手工布局:该方式同样使用setGemetry()函数来设置子窗口部件的大小和位置。
(三) 布局管理器:它是Qt界面程序开发中管理串口子部件最好的方法,也是最适用的方法。最常用的有水平布局管理器QHBoxLayout,用于水平方向组织管理窗口子部件。垂直布局管理器QVBoxLayout,用于垂直方向组织管理窗口子部件。水平布局管理器QGridLayout,用于网格的形式组织管理窗口子部件。
在每个方向有7个策略值来告诉管理器如何进行压缩或扩展。
LeftLayout->setColumnStretch(0,1). LeftLayout->setColumnStretch(1,3)设定两列分别占用空间为1:3. TopLayout->setSpacing(20); //设置各控件间距为20 ButtomLayout->addStrech(); //插入一个占位符。 MainLayout->setMargin(15);//设置对话框边距为15
(四)分割窗口:Qt的分裂器部件QSplitter通过分裂将窗口分成两个子窗口,并且可以通过拖动分裂柄来改变子窗口的大小,分裂器部件中也可以添加其他的。因此,对用户来说,使用分裂器部件更加灵活,可以拖动改变,而布局管理器就无法实现。
(五)停靠窗口:QDockWidget类:停靠窗口QDockWidget类也是应用程序中经常用到的。
(六)堆栈窗体QStackedWidget类:在实际应用中,堆栈窗体多与列表框及下拉框QComboBox配合使用。栈部件QStackedWidget提供了一个栈空间,该栈空间是用来管理窗口部件的,但是某一时刻,栈空间只能有一个窗口部件被显示。