QGridLayout居中
时间: 2023-07-06 09:35:19 浏览: 277
网格布局(QGridLayout)
若想让QGridLayout中的组件居中显示,可以使用QWidget的setSizePolicy方法来设置组件的大小策略,例如:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QGridLayout, QLabel
app = QApplication([])
window = QWidget()
layout = QGridLayout()
label1 = QLabel("Label 1")
label2 = QLabel("Label 2")
label3 = QLabel("Label 3")
# 设置label的大小策略为最小尺寸
label1.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
label2.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
label3.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
# 将label添加到layout中
layout.addWidget(label1, 0, 0)
layout.addWidget(label2, 0, 1)
layout.addWidget(label3, 1, 0, 1, 2)
# 设置layout的列伸展因子和行伸展因子
layout.setColumnStretch(0, 1)
layout.setColumnStretch(1, 1)
layout.setRowStretch(0, 1)
layout.setRowStretch(1, 1)
window.setLayout(layout)
window.show()
app.exec_()
```
在上面的代码中,使用了QLabel的setSizePolicy方法将label的大小策略设置为最小尺寸,然后使用QGridLayout的setColumnStretch和setRowStretch方法设置列伸展因子和行伸展因子,从而使得组件在布局时居中显示。
阅读全文