# PyQt 网格

> 原文： [https://pythonbasics.org/PyQt-grid/](https://pythonbasics.org/PyQt-grid/)

PyQt **QGridLayout** 是另一种布局。
通常，您可以使用 _.move（x，y）_ 来定位小部件（按钮，标签等）。 网格不是这样。

它以 AxB 形式放置小部件。 其中，A 是列数，B 是行数。 与您在 excel 中看到的类似。

QGridLayout 是 PyQt5.QtWidgets 的一部分。




## 示例

### `QGridLayout`

您可以使用单行代码创建 QGridLayout 或网格：

```py
grid = QGridLayout()

```

告诉窗口使用网格：

```py
win.setLayout(grid)

```

可以使用以下工具将小部件添加到网格：

```py
grid.addWidget(widget,col,row)

```

![pyqt grid](img/4e34e239c7da4206afc487ff4b79b533.jpg)

### 网格示例

下面的代码创建一个包含一组按钮的布局。 它通过使用嵌套的 for 循环添加一组按钮。

创建网格的关键部分是：

```py
grid = QGridLayout()

for i in range(0,5):
   for j in range(0,5):
       grid.addWidget(QPushButton(str(i)+str(j)),i,j)

win.setLayout(grid)

```

其余代码仅创建窗口。 但是复制和粘贴很容易。

```py
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QGridLayout, QPushButton
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot

def window():
   app = QApplication(sys.argv)
   win = QWidget()
   grid = QGridLayout()

   for i in range(0,5):
      for j in range(0,5):
         grid.addWidget(QPushButton(str(i)+str(j)),i,j)

   win.setLayout(grid)
   win.setWindowTitle("PyQt Grid Example")
   win.setGeometry(50,50,200,200)
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

```

[下载示例](https://gum.co/pysqtsamples)