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 表示。它们被转换为字符串,以便将每个按钮的标题连接到 i th 行和 j th 列。
以上代码产生以下输出−