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.