“在布局时,默认的布局属性并不能满足需求,所以我们要手动调整属性”
1、控件大小暗示
控件大小调整有两个属性尤为重要,sizeHint和minimumSizeHint。这两个属性属于QWidget。每个控件都有默认的建议大小,设置为sizeHint,控件则自动调整为默认大小;minimumSizeHint则是控件被限制成最小大小,如果手动设置成minimumSize,minimumSizeHint被忽略。
2、控件大小策略
在可视化设计师界面,最右侧属性可以看到sizePolicy属性,这个属性也是属于QWidget,他可以分别设置水平方向和垂直方向:
Fixed:不发生伸缩
Minimum:最小的建议尺寸,可以被拉伸
Maximum:最大的建议尺寸,可以被压缩
Preferred:可以拉伸和压缩
MinimumExpanding:最小建议尺寸,不能被压缩,优先发生拉伸
Expanding:控件为建议尺寸,可以被压缩,但优先发生拉伸
Ignored:建议尺寸被忽略
3、控件的伸缩性
在设计师界面选中布局,右侧属性中有一项layoutStretch:
同一个布局中的控件,和同一个布局中的布局之间会有一定的比例关系,比如一个布局中有三个控件,他们的默认比例为“0,0,0”,此时我们需要根据实际情况去设置比例,设置完成后控件将依照比例来进行伸缩。
4、布局的窗体大小限制
在QLayout中有layoutSizeConstraint这一属性,这个属性来对布局的窗体大小进行约束,这个设置可以在设计师界面,选中布局,窗口右侧的属性栏最后一项可以找到:
SetDefaultConstraint:布局窗体被设置为最小值并且无法被调整,如果布局中出现更大的最小值,布局窗体大小会进行调整
SetNoConstraint:布局窗体不被约束
SetMinimumSize:布局窗体被设置为最小值并且无法被缩小
SetFixedSize:设置为建议大小,并且不可以被调整
SetMaximumSize:布局窗体被设置为最大值并且无法被放大
SetMinAndMaxSize:窗体为最小值时无法被缩小,窗体为最大值时无法被放大。
5、间隔调整
间隔包括布局与widget上下左右四个方向以及布局内部控件之间水平方向和垂直方向的间隔,在设计师界面选中布局的父窗口或者布局本身可以进行调整:
layoutLeftMargin、layoutTopMargin、layoutRightMargin、layoutBottonMargin:布局与窗体上下左右方间距
layoutHorizontalSpacing、layoutVerticalSpacing:布局内部控件之间的水平和垂直方向的间隔