以水平布局为例
如下图所示在MainWindow中添加三个widget,通过设置StyleSheet分别将其设置为三个颜色便于观察。
目标1:
- 使绿色的Widget所占空间最大;
- 随着页面的横向缩放,蓝色与绿色Widget会改变宽度,红色Widget宽度不变
- 随着页面的横向放大到一定程度,蓝色widget不再变宽。
实现:
-
设置红色Widget的sizePolicy如下:
-
设置绿色Widget的sizePolicy与minimumSize如下:
(注意HorizontalStretch也要设置,否则主窗口缩放时该Widget还是不会变化。)
-
设置蓝色Widget的sizePolicy与maximumSize如下:
结果查看:
为了更明显观察结果,在每个Widget中都添加一个Label控件,如下图所示:
主窗口宽度改变:
目标2:
- 使红绿蓝三个色块按照固定比例(如2:3:1)分配整个widget
实现:
通过设置如下内容: