PyQt5 - QGridLayout 类
GridLayout 类对象以行和列排列的单元格网格呈现。 该类包含 addWidget() 方法。 通过指定单元格的行数和列数,可以添加任何小部件。 (可选)行和列的跨度因子(如果指定)使小部件比一个单元格更宽或更高。 addWidget() 方法的两个重载如下 −
序号 | 方法 & 说明 |
---|---|
1 |
addWidget(QWidget, int r, int c) 在指定的行和列添加一个小部件 |
2 |
addWidget(QWidget, int r, int c, int rowspan, int columnspan) 在指定的行和列添加一个小部件,并具有指定的宽度和/或高度 |
也可以在网格中的任何单元格中添加子布局对象。
序号 | 方法 & 说明 |
---|---|
1 |
addLayout(QLayout, int r, int c) 在指定的行和列添加布局对象 |
示例
以下代码创建了一个由 16 个按钮组成的网格布局,这些按钮以 4 行 4 列的网格布局排列。
import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * def window(): app = QApplication(sys.argv) win = QWidget() grid = QGridLayout() for i in range(1,5): for j in range(1,5): grid.addWidget(QPushButton("B"+str(i)+str(j)),i,j) win.setLayout(grid) win.setGeometry(100,100,200,100) win.setWindowTitle("PyQt") win.show() sys.exit(app.exec_()) if __name__ == '__main__': window()
该代码对行号和列号使用两个嵌套的 for 循环,由变量 i 和 j 表示。它们被转换为字符串以连接要添加到 ith 行和 jth 列的每个按钮的标题。
上面的代码产生以下输出 −