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设置为窗口的布局管理器。
