Qt 提供了非常丰富的布局类,基本布局管理类包括:QBoxLayout、QGridLayout、QFormL
ayout 和 QStackedLayout。这些类都从 QLayout 继承而来,它们都来源于 QObject(而不是 QWi
dget)。创建更加复杂的布局,可以让它们彼此嵌套完成。
其中 QBoxLayout 提供了水平和垂直的布局管理;QFormLayout 提供了将输入部件和标签
成组排列的布局管理;QGridLayout 提供了网格形式的布局管理;QStackedLayout 提供了一组
布局后的部件。
各个控件的名称依次解释如下。
(1) Vertiacl Layout:垂直布局
(2) Horizontal Layout:水平布局
(3) Grid Layout:网格布局
(4) Form Layout:表单布局
QBoxLayout 继承 QLayout。QBoxLayout 类提供水平或垂直地排列子部件。QBoxLayout 获
取从它的父布局或从 parentWidget()中所获得的空间,将其分成一列框,并使每个托管小部件填
充一个框。
QGridLayout继承QLayout。QGridLayout获取可用的空间(通过其父布局或parentWidget())),
将其分为行和列,并将其管理的每个小部件放入正确的单元格中。由于网格布局管理器中的组
件也是会随着窗口拉伸而发生变化的,所以也是需要设置组件之间的比例系数的,与 QBoxLay
out 不同的是网格布局管理器还需要分别设置行和列的比例系数。
QFormLayout 继承 QLayout。QFormLayout 类管理输入小部件及其关联标签的表单。QFor
mLayout 是一个方便的布局类,它以两列的形式布局其子类。左列由标签组成,右列由“字段”
小部件(QLineEdit(行编辑器)、QSpinBox(旋转框等))组成。通常使用 setRowWrapPolicy(RowWr
apPolicy policy)接口函数设置布局的换行策略进行布局等。
在ui界面下,放几个按钮在界面上,将他们依次选中,然后点击界面上方的:
这几个按钮,即可实现布局:
在右边控件栏选中你所创建的布局可以调整布局的属性:
这个属性的第一个是表示该布局的名称;
第二、三、四、五个分别是 左、顶、右和下边距。调整这个值可以调整按钮或控件到布局边缘的值。
第六个表示控件与控件之间的间隔。
.
把他改成 0 之后就可以看到控件与控件是紧挨着的。
倒数第二个表示的是控件与控件的大小比例,这里改成是 1:1:2:4后的效果
以上是水平布局。
这是垂直布局。
网格布局。
多了一些行和列的设置