欢迎访问宙启技术站
智能推送

PyQt5.QtWidgets.QSizePolicy:设置控件的大小和布局调整策略

发布时间:2024-01-17 01:00:56

PyQt5.QtWidgets.QSizePolicy类提供了设置控件的大小和布局调整策略的方法。该类可以用于定义控件在其所在的布局中的尺寸大小和行为。

QSizePolicy类有两个主要的属性:sizeHint和policy。sizeHint属性定义了控件的首选尺寸,policy属性定义了控件在布局中的调整策略。

下面是一个使用QSizePolicy的示例程序:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QSizePolicy, QVBoxLayout, QLabel, QLineEdit, QPushButton

class Example(QWidget):
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
    def initUI(self):
        # 创建一个垂直布局管理器
        vbox = QVBoxLayout()
        
        # 创建一个标签控件
        label = QLabel('Label')
        # 设置标签控件的大小策略为:自动调整大小
        label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        vbox.addWidget(label)
        
        # 创建一个文本输入框
        lineEdit = QLineEdit()
        # 设置文本输入框的大小策略为:固定大小
        lineEdit.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        lineEdit.setFixedSize(200, 30)
        vbox.addWidget(lineEdit)
        
        # 创建一个按钮控件
        button = QPushButton('Button')
        # 设置按钮控件的大小策略为:自动调整大小
        button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        vbox.addWidget(button)
        
        # 设置窗口的布局管理器为垂直布局管理器
        self.setLayout(vbox)
        
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Example')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

在上述示例程序中,首先创建了一个垂直布局管理器vbox。然后创建了三个控件:一个标签控件label,一个文本输入框lineEdit,和一个按钮控件button。通过调用控件的setSizePolicy方法,可以为控件设置大小和布局调整策略。在这个例子中,标签控件的大小策略为自动调整大小,文本输入框的大小策略为固定大小,按钮控件的大小策略为自动调整大小。最后,将这三个控件添加到了布局管理器vbox中,并将vbox设置为窗口的布局管理器。