PyQt - Clase QGridLayout

UN GridLayoutEl objeto de clase se presenta con una cuadrícula de celdas dispuestas en filas y columnas. La clase contiene el método addWidget (). Se puede agregar cualquier widget especificando el número de filas y columnas de la celda. Opcionalmente, un factor de expansión para filas y columnas, si se especifica, hace que el widget sea más ancho o más alto que una celda. Dos sobrecargas del método addWidget () son las siguientes:

No Señor. Métodos y descripción
1

addWidget(QWidget, int r, int c)

Agrega un widget en una fila y columna especificadas

2

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

Agrega un widget en la fila y columna especificadas y con un ancho y / o alto especificados

También se puede agregar un objeto de diseño secundario en cualquier celda de la cuadrícula.

No Señor. Métodos y descripción
1

addLayout(QLayout, int r, int c)

Agrega un objeto de diseño en una fila y columna especificadas

Ejemplo

El siguiente código crea un diseño de cuadrícula de 16 botones dispuestos en un diseño de cuadrícula de 4 filas y 4 columnas.

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

El código utiliza dos bucles for anidados para los números de fila y columna, indicados por las variables i y j . Se convierten en una cadena para concatenar el título de cada botón que se agregará en la i- ésima fila y en la j- ésima columna.

El código anterior produce la siguiente salida: