目录
1 QWidget.sizeHint()
这个方法会返回控件合适的尺寸大小
这个是内置的建议尺寸,如果想要设置的话,需要重写类中的sizeHint方法
2 QWidget.minimumSizeHint()
这个方法会返回最小的建议大小
这个是内置的建议尺寸,如果想要设置的话,需要重写类中的minimumSizeHint方法
当然它也会对展示有所效果
我们把刚刚的标签搞一个背景色,然后把它放在布局管理器中,这样才能看出来效果
一个是自定义类,一个是QLabel
把它们都放在布局管理器中,然后设置给窗口
这个是我缩放到最小的状态,很明显最小尺寸是不一样的
3 策略取值 setSizePolicy()
可作为参数的值如下
- QSizePolicy.Fixed() 固定的,参考sizeHint()的返回值
- QSizePolicy.Minimum 不小于最小尺寸
- QSizePolicy.Maximum 不大于最大尺寸
- QSizePolicy.Preferred 可以伸展和收缩,但占用空间的优先级不是最高
- QSizePolicy.Expanding 可以伸展和收缩,占用空间的优先级最高
- QSizePolicy.MinimumExpanding 可以伸展和收缩,占用空间的优先级最高,有最小值
- setSizePolicy(self,QSizePolicy)
这个是传入一个对象进去,用这个的时候要先创建一个对象,创建对象时要放两个政策,第一个横向,第二个纵向
我们测试一下这个怎么用
我们设置横向为建议返回值,纵向至少为最小值
运行之后是这样的
横向拉伸之后发现hello的Label并不会改变
纵向拉伸之后发现他们会一起变大
- setSizePolicy(self,QSizePolicy.Policy,QSizePolicy.Policy)
这个是放两个策略,第一个应用于横向,第二个应用于纵向
是这样用的
经测试与刚刚的效果相同
其余可作为策略的参数我就不测试了,用到了以后再进行更新
这些同样是可以设置策略的方法,我们之后用到再说
这个功能的作用是,当控件隐藏时,依然保留尺寸策略
我们如果没加这句话隐藏完标签之后就是这样的
加了这句话就是这样的
- 注:这句话必须放在设置策略之前才有效