PyQt - Classe QGridLayout

UMA GridLayouto objeto de classe apresenta uma grade de células organizadas em linhas e colunas. A classe contém o método addWidget (). Qualquer widget pode ser adicionado especificando o número de linhas e colunas da célula. Opcionalmente, um fator de abrangência para linha e coluna, se especificado, torna o widget mais largo ou mais alto que uma célula. Duas sobrecargas do método addWidget () são as seguintes -

Sr. Não. Métodos e Descrição
1

addWidget(QWidget, int r, int c)

Adiciona um widget na linha e coluna especificadas

2

addWidget(QWidget, int r, int c, int rowspan, int columnspan)

Adiciona um widget na linha e coluna especificadas e tendo largura e / ou altura especificadas

Um objeto de layout filho também pode ser adicionado a qualquer célula da grade.

Sr. Não. Métodos e Descrição
1

addLayout(QLayout, int r, int c)

Adiciona um objeto de layout na linha e coluna especificadas

Exemplo

O código a seguir cria um layout de grade de 16 botões organizados em um layout de grade de 4 linhas e 4 colunas.

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()

O código usa dois loops for aninhados para números de linha e coluna, denotados pelas variáveis i e j . Eles são convertidos em string para concatenar a legenda de cada botão de ação a ser adicionado na i- ésima linha ej- ésima coluna.

O código acima produz a seguinte saída -