Qt之格栅布局(QGridLayout)
时间: 2024-02-05 19:03:06 浏览: 90
Qt中的QGridLayout布局管理器可以用于将控件排列成网格形式,类似于电子表格。该布局管理器可以自动调整控件的大小和位置,使它们适应所在的单元格。
下面是一个简单的例子,展示了如何使用QGridLayout布局管理器:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QGridLayout
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
grid = QGridLayout()
self.setLayout(grid)
names = ['Cls', 'Bck', '', 'Close',
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+']
positions = [(i,j) for i in range(5) for j in range(4)]
for position, name in zip(positions, names):
if name == '':
continue
button = QPushButton(name)
grid.addWidget(button, *position)
self.move(300, 150)
self.setWindowTitle('Calculator')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个简单的计算器界面。我们使用了QGridLayout布局管理器来排列按钮。注意到我们使用`positions = [(i,j) for i in range(5) for j in range(4)]`来生成一个包含所有单元格位置的列表,并且使用`zip()`函数将按钮名称与单元格位置一一对应。
最后,我们使用`setLayout()`方法将QGridLayout布局管理器设置为窗口的布局,并使用`show()`方法显示窗口。
阅读全文