怎样使用 setSizePolicy
时间: 2024-06-11 22:04:10 浏览: 120
setSizePolicy是Qt中的一个函数,用于设置控件的大小策略。它的语法如下:
```python
setSizePolicy(QSizePolicy.Horizontal, QSizePolicy.Fixed)
```
其中,第一个参数表示控件在水平方向上的大小策略,可以取值为:
- QSizePolicy.Fixed:固定大小
- QSizePolicy.Minimum:最小大小
- QSizePolicy.Maximum:最大大小
- QSizePolicy.Preferred:首选大小
- QSizePolicy.Expanding:扩展大小
- QSizePolicy.MinimumExpanding:最小扩展大小
- QSizePolicy.Ignored:忽略大小
第二个参数表示控件在垂直方向上的大小策略,取值与第一个参数相同。
使用setSizePolicy可以让控件根据需要自动调整大小,以适应窗口大小的变化,提高用户体验。例如:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout, QHBoxLayout, QSizePolicy
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
okButton = QPushButton("OK")
cancelButton = QPushButton("Cancel")
hbox = QHBoxLayout()
hbox.addStretch(1)
hbox.addWidget(okButton)
hbox.addWidget(cancelButton)
vbox = QVBoxLayout()
vbox.addStretch(1)
vbox.addLayout(hbox)
self.setLayout(vbox)
# 设置按钮的大小策略
okButton.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
cancelButton.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('Buttons')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在这个例子中,我们创建了两个按钮,并将它们放在一个水平布局中,再将水平布局放在一个垂直布局中。然后,我们将按钮的大小策略设置为固定大小,这样当窗口大小改变时,按钮的大小不会发生变化。最后,我们将布局设置为窗口的布局,并显示窗口。
阅读全文