PyQt5 – QGridLayout类
一个GridLayout类对象呈现了一个以行和列排列的单元格。该类包含addWidget()方法。任何部件都可以通过指定单元格的行和列的数量被添加。可选的是,如果指定了行和列的跨度系数,那么该部件就会比一个单元格更宽或更高。addWidget()方法的两个重载如下
Sr.No. | 方法和描述 |
---|---|
1 | addWidget(QWidget, int r, int c) 在指定的行和列上添加一个小部件。 |
2 | addWidget(QWidget, int r, int c, int rowspan, int columnspan) 在指定的行和列上添加一个具有指定宽度和/或高度的小部件。 |
也可以在网格中的任何单元格添加一个子布局对象。
Sr.No. | 方法和描述 |
---|---|
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行和第j列的每个按钮的标题。
上述代码产生了以下输出 —