Qt 中的自适应布局策略
本文最后更新于:2026年8月29日 晚上
Qt 控件在窗体中的自适应布局
为了 Qt 窗体在缩放的时候能够保证控件能够自适应地随着窗体进行尺寸变化,我们需要在窗口设计过程中考虑,窗体内控件的布局方式,以达到美观的效果。
Qt 布局 layout
Vertical Layout(垂直布局)
Horizontal Layout(水平布局)
Grid Layout(栅格布局)
Form Layout(窗体布局)
以 Horizontal Layout(水平布局)为例,进行相关参数讲解
外边距设置
外边距包括 layoutLeftMargin(左边距)、layoutTopMargin(上边距)、layoutRightMargin(右边距)、layoutBottomMargin(底边距),设置左边距 20 上边距 20,效果如下所示。

间隔设置
间隔设置 layoutSpacing 是指布局当中控件之间的间隔大小,设置间隔为 50,效果如下所示。

拉伸设置
拉伸设置 layoutStretch 是指控件在布局中所占比例,各控件依照此比例进行缩放显示,但也不能无条件地拉伸压缩,这还与控件所设置的 sizePolicy 策略有关,拉伸因子默认为(0,0,0,0),设置拉伸因子为(1,2,3,4),效果如下。

分裂器 Splitter
分裂器也属于布局中的一种,效果为在控件之间添加一个可拖动改变两个控件大小的拖动条,可以改变两个控件之间所占比例,效果如下。

sizePolicy 尺寸控制策略
控件的 sizePolicy 说明了控件在布局管理中的缩放方式。Qt 提供的控件都有一个合理的缺省 sizePolicy,但是这个缺省值有时不能适合所有的布局,开发人员经常需要改变窗体上的某些控件的 sizePolicy。一个 QSizePolicy 的所有变量对水平方向和垂直方向都适用。下面列举了一些最常用的值:
A. Fixed:控件不能放大或者缩小,控件的大小就是它的 sizeHint;大小不能改变
B. Minimum:控件的 sizeHint 为控件的最小尺寸。控件不能小于这个 sizeHint,但是可以放大;
C. Maximum:控件的 sizeHint 为控件的最大尺寸,控件不能放大,但是可以缩小到它的最小的允许尺寸;
D. Preferred:控件的 sizeHint 是它的 sizeHint,但是可以放大或者缩小;
E. Expanding:控件可以尽可能增大或者缩小;
注:sizeHint(布局管理中的控件默认尺寸,如果控件不在布局管理中就为无效的值),布局中修改控件的 minimumSize 或 maximumSize 会更改 Minimum 和 Maximum 布局策略的 sizeHint 大小。
Qt 窗口控件显示美化技巧
窗口居中显示
1 | |
程序窗口屏幕适应性
1 | |
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!