Python GUI编程网 > PyQt5常用控件属性和方法学习 > 布局管理器-尺寸策略QSizePolicy
python教程

布局管理器-尺寸策略QSizePolicy

发布日期:2021年2月27日 09:04
阅读:2360
作者:Python GUI编程网

布局管理器-尺寸策略QSizePolicy

00:00 / 01:23
1x
2x
1.5x
1.25x
1x
0.8x
0.5x

布局管理器-尺寸策略QSizePolicy

################################
# PyQt5中文网 - PyQt5全套视频教程 #
#    https://www.PyQt5.cn/     #
#         主讲: 村长            #
################################

from PyQt5.Qt import *
import sys

class size_widget(QLabel):
    def sizeHint(self):
        return QSize(200, 200)


class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("布局管理器-尺寸策略size - PyQt5中文网")
        self.resize(600, 500)
        self.func_list()

    def func_list(self):
        self.func()

    def func(self):
        label1 = QLabel('标签1', self)
        label1.setStyleSheet('background-color:green')
        label2 = size_widget('标签2', self)
        label2.setStyleSheet('background-color:red')
        label3 = QLabel('标签3', self)
        label3.setStyleSheet('background-color:yellow')
        bl = QVBoxLayout()
        self.setLayout(bl)
        bl.addWidget(label1)
        bl.addWidget(label2)
        bl.addWidget(label3)

        # 策略取值
        # QSizePolicy.Fixed  # 按照控件本身尺寸取值
        # QSizePolicy.Minimum  # 可以伸缩尺寸,sizeHide已确定最小控件尺寸
        # QSizePolicy.Maximum  # 可以伸缩尺寸,sizeHide已确定最大控件尺寸
        # QSizePolicy.Preferred  # 可以伸缩尺寸,没有限制
        # QSizePolicy.Expanding  # 可以伸缩尺寸,相比上一个优先级更高
        # QSizePolicy.MinimumExpanding  # 可以伸缩尺寸......
        # QSizePolicy.Ignored  # 忽略sizeHide的作用,可以小到0
        # sp = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        sp = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Preferred)
        sp1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding)
        label2.setSizePolicy(sp)
        label3.setSizePolicy(sp1)

        label3.setFixedSize(300, 300)  # 设置固定尺寸



if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window()

    window.show()
    sys.exit(app.exec_())