六、Qt界面设计之使用 sizePolicy 属性来自动控制 Widget 在布局中的大小,比如只设置某一个控件随界面变大而变大

一、sizePolicy(大小策略)属性介绍

  控件的 sizePolicy 说明控件在布局管理中的缩放方式。Qt提供的控件都有一个合理的缺省sizePolicy,但是这个缺省值有时不能适合 所有的布局,开发人员经常需要改变窗体上的某些控件的sizePolicy。一个QSizePolicy的所有变量对水平方向和垂直方向都适用。下面列举了一些最长用的值:

  • Fixed:控件不能放大或者缩小,控件的大小就是它的sizeHint。
  • Minimum:控件的sizeHint为控件的最小尺寸。控件不能小于这个sizeHint,但是可以
    放大。
  • Maximum:控件的sizeHint为控件的最大尺寸,控件不能放大,但是可以缩小到它的最小的允许尺寸。
  • Preferred:控件的sizeHint是它的sizeHint,但是可以放大或者缩小
  • Expandint:控件可以自行增大或者缩小

备注:sizeHint(布局管理中的控件默认尺寸,如果控件不在布局管理中就为无效的值)

二、使用

(一)在UI 设计器中设置

六、Qt界面设计之使用 sizePolicy 属性来自动控制 Widget 在布局中的大小,比如只设置某一个控件随界面变大而变大_第1张图片

(二)代码实现

	QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
    sizePolicy.setHorizontalStretch(0);
    sizePolicy.setVerticalStretch(0);
    sizePolicy.setHeightForWidth(widgetMain->sizePolicy().hasHeightForWidth());
    widgetMain->setSizePolicy(sizePolicy);

三、案例

将三个按钮放在一个 widget 中,对 widget 设置水平布局,未设置大小策略之前:
在这里插入图片描述
要求:两边按钮水平方向固定大小,中间按钮随着界面的增大而变大,即:
在这里插入图片描述
那么只要设置中间按钮的大小策略为水平方向扩展即可,即:
六、Qt界面设计之使用 sizePolicy 属性来自动控制 Widget 在布局中的大小,比如只设置某一个控件随界面变大而变大_第2张图片

你可能感兴趣的:(Qt界面设计小知识)