一、sizePolicy(大小策略)屬性介紹
控件的 sizePolicy 說明控件在布局管理中的縮放方式。Qt提供的控件都有一個合理的缺省sizePolicy,但是這個缺省值有時不能適合 所有的布局,開發人員經常需要改變窗體上的某些控件的sizePolicy。一個QSizePolicy的所有變量對水平方向和垂直方向都適用。下面列舉了一些最長用的值:
Fixed:控件不能放大或者縮小,控件的大小就是它的sizeHint。
Minimum:控件的sizeHint為控件的最小尺寸。控件不能小於這個sizeHint,但是可以放大。
Maximum:控件的sizeHint為控件的最大尺寸,控件不能放大,但是可以縮小到它的最小的允許尺寸。
Preferred:控件的sizeHint是它的sizeHint,但是可以放大或者縮小。
Expandint:控件可以自行增大或者縮小。
備注:sizeHint(布局管理中的控件默認尺寸,如果控件不在布局管理中就為無效的值)
二、使用
(一)在UI 設計器中設置
(二)代碼實現
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); sizePolicy.setHorizontalStretch(0); sizePolicy.setVerticalStretch(0); sizePolicy.setHeightForWidth(widgetMain->sizePolicy().hasHeightForWidth()); widgetMain->setSizePolicy(sizePolicy);
三、案例
將三個按鈕放在一個 widget 中,對 widget 設置水平布局,未設置大小策略之前:
要求:兩邊按鈕水平方向固定大小,中間按鈕隨着界面的增大而變大,即:
那么只要設置中間按鈕的大小策略為水平方向擴展即可,即:
https://blog.csdn.net/panchang199266/article/details/104718541