PyQt QGridLayout 类

PyQt 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 PyQt4.QtCore import *
from PyQt4.QtGui 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 列。

上述代码会产生以下输出−

PyQt QGridLayout 类

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程