QGridLayout布局生成5个子元素并自动换行
时间: 2024-05-08 14:20:39 浏览: 153
可以使用QGridLayout的addWidget()方法添加子元素,并在需要换行的位置调用QGridLayout的nextRow()方法。
以下是一个例子:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QGridLayout
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
grid = QGridLayout()
self.setLayout(grid)
# 添加子元素
for i in range(5):
label = QLabel(str(i+1))
grid.addWidget(label, i // 2, i % 2)
# 换行
if i % 2 == 1:
grid.nextRow()
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QGridLayout')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
这个例子中,我们使用了QLabel作为子元素,添加了5个子元素,当添加到第2列时调用nextRow()方法进行换行,最终生成了一个5个子元素的QGridLayout布局,并且子元素自动换行。
阅读全文