参考:https://blog.csdn.net/hiwoshixiaoyu/article/details/70859879
qt布局有几种:
1.水平布局QHBoxLayout
2.垂直布局QVBoxLayout
3.网格布局QGridLayout
4.表格布局QFormLayout
5.分组布局QStackLayout ( QStackedLayout类把子控件进行分组或者分页,一次只显示一组或者一页,隐藏其他组或者页上的控件)。
这些方法可以嵌套使用。使用这些Qt布局管理类的另一个原因是,在程序、系统改变字体,语言或者在不同的平台上运行时,布局管理器能够自动调整窗体里所有控件的大小和尺寸。
layout的属性设置的含义:
1.layoutName:layout的名称
2.layoutLeftMargin:布局中元素左侧边距
3.layoutTopMargin:布局中元素上方边距
4.layoutRightMargin:布局中元素右侧边距
5.layoutBottomMargin:布局中元素下方边距
6.layoutSpacing:布局中元素之间的距离
7.layoutStetch:伸缩因子
相对一个horizontalLayout中的两个QTextEdit控件按2:3的比例扩大
具体方法:
把horizontalLayout中的layoutstretch属性设置为2,3即可,layoutstretch属性的意思是horizontalLayout里面的两个控件按2:3的宽度显示。
同理如果horizontalLayout里面放了三个控件,layoutstretch里面的初始值为0,0,0,意思是三个控件的比例是1:1:1。
其他控件中的layoutstretch也是这个意思。
8.layoutSizeConstraint:设置大小约束条件
如果布局中需要保持控件的大小,则需要设置控件的minimumsize和maximumsize。
布局管理的三种方式:
1.绝对位置定位: label.setGeometry(10,10,20,20);
2.手工布局: 给出控件的绝对位置,但是他们的尺寸根据窗口的大小确定,可以通过重写窗体控件的resizeEvent()实现对子控件的大小设置。
3.布局管理器: 运用QHBoxLayout、QVBoxLayout、QGridLayout 、QFormLayout、QStackLayout布局。
sizepolicy:
1. Fixed: 大小不能改变
2. Minimum: 已经是最小, 不能再被缩小, 但能放大.
3. Maximum: 已经是最大, 不能再被放大, 但能缩小.
4. Preferred: 控件的sizeHint()是他的sizeHint, 能被缩小, 放大.
5. Expanding: 控件可以自行增大或者缩小.