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)

在指定的行和列中添加一个布局对象

示例

以下代码创建一个网格布局,其中包含 4 行和 4 列网格布局中排列的 16 个按钮。

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 循环用于行号和列号,由变量 ij 表示。它们被转换为字符串,以将每个按钮的标题连接起来,这些按钮将添加到第 ith 行和第 jth 列。

上述代码生成以下输出 −

QGridLayout Class Output
pyqt_layout_management.htm
广告
© . All rights reserved.