一、在我们使用Qt做界面设计时,为了界面的整洁美观,往往需要对界面中的所有控件做一个有序的排列 ,以及设置各个控件之间的间距 等等,为此Qt为界面设计提供了基本布局功能,使用基本布局可以使组件有规则地分布。
1.1 基本布局控件(QLayouts)在UI界面中不会显示,只是控制其中的其它控件的相对位置。
1.2 如果Qt UI界面中的控件使用了布局,这些控件就会随着窗体的大小变化自动地调整大小和相应的位置。
注意:使得控件随窗口缩放而缩放的方法,需要给整个窗口加布局,点击窗口类,在选择布局;
1.3 布局是可以嵌套使用的。
你还可以使用Qt Design图形化地设计布局界面。 也可以使用代码设计界面布局。本文从使用Qt Design方面简单介绍下Qt的基本布局
二、
2.1 四种布局

Vertical Layout:垂直布局或纵向布局;

Horizontal Layout:水平布局或横向布局;

Grid Layout:网格布局或栅格布局,将页面上的控件按照网格的样式分布;

Form Layout:表单布局,控件以两列的形式布局在表单中,其中左列包含标签,右列包含输入控件。

2.2 使用:直接拖拽布局控件
使用方式是先把布局控件拖入界面中,之后再把其它需要的控件拖入到布局控件中,则这些控件就会自动调整为相应的布局。
将一个Horizontal Layout拖入界面,会显示一个红色的框。再将需要布局的控件拖入到红色的框中,也就是Horizontal Layout控件中。我把两个PushButton拖入红框中,两个PushButton自动横向排列。

2.3:Layout布局的属性
layoutName :布局名(所使用的布局管理器的名称)
layoutLeftMargin :左间距(设置布局管理器到界面左边界的距离)
layoutTopMargin :顶部间距(设置布局管理器到界面上边界的距离)
layoutRightMargin :右间距(设置布局管理器到界面右边界的距离)
layoutBottomMargin :底板间距(设置布局管理器到界面下边界的距离)
layoutSpacing :控件之间的间距(设置布局管理器各个子部件间的间隔)
layoutStretch :设置布局因子,调整布局中每个控件所占大小的比例
layoutSizeConstraint :设置大小约束条件
分别对应下面位置的间距

ayoutRowStretch:每一行的高度比
layoutColumnStretch:每一列的宽度比
如layoutColunmStretch设置为1,4,那么就相当于把布局的宽度分为5份,第一列占1份。第二列占4份
