以下的内容基本是来自《C++ Gui Programming With Qt 4 2nd》
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
我们在实现自定义微件的构造函数时, 可能就会写上这句代码. 这段代码的意思是: 微件的大小为微件的最小尺寸, 微件的面积不能小于这个面积量, 但是如果微件的面积需要放大, 微件的面积可以在有效空间内扩大.
setSizePolicy 方法的第一个实参是针对水平方向的, 第二个是针对垂直方向的.
一个微件的 sizePolicy 说明微件在布局管理器中的缩放方式. Qt 内置的微件都提供了合理的缺省sizePolicy, 但是这个缺省值有时不能适合所有的布局, 开发人员经常需要改变窗体上的某些控件的 sizePolicy. 一个 QSizePolicy 包括一个水平组件和垂直组件. 下面是最常用的值:
1. Fixed: 微件不能放大或者缩小. 微件的大小总是它的面积量.
2. Minimum: 微件的默认大小为微件的最小尺寸. 微件不能小于该面积量, 但是可以在有效空间内放大.
3. Maximum: 微件的默认大小为微件的最大尺寸. 微件可以缩小到其最小的面积量.
4. Preferred: 微件的默认大小为微件的面积量, 但是微件可以放大或者缩小.
5. Expanding: 微件可以自行放大或者缩小. 跟Preferred 的区别是, Expanding 的微件会随窗口的放大缩小而放大缩小, Prefeered 的微件大小保持不变.
以文本为"Some Text" 的 QLabel 显示了这些不同的 sizePolicy 的含义.