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: