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 -