PyQt - Classe QGridLayout

UNE GridLayoutl'objet de classe se présente avec une grille de cellules disposées en lignes et en colonnes. La classe contient la méthode addWidget (). Tout widget peut être ajouté en spécifiant le nombre de lignes et de colonnes de la cellule. Éventuellement, un facteur d'étendue pour la ligne et la colonne, s'il est spécifié, rend le widget plus large ou plus haut qu'une cellule. Deux surcharges de la méthode addWidget () sont les suivantes -

Sr.No. Méthodes et description
1

addWidget(QWidget, int r, int c)

Ajoute un widget à la ligne et à la colonne spécifiées

2

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

Ajoute un widget à la ligne et à la colonne spécifiées et ayant une largeur et / ou une hauteur spécifiées

Un objet de mise en page enfant peut également être ajouté à n'importe quelle cellule de la grille.

Sr.No. Méthodes et description
1

addLayout(QLayout, int r, int c)

Ajoute un objet de mise en page à la ligne et à la colonne spécifiées

Exemple

Le code suivant crée une disposition de grille de 16 boutons poussoirs disposés dans une disposition de grille de 4 lignes et 4 colonnes.

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

Le code utilise deux boucles for imbriquées pour les numéros de ligne et de colonne, désignées par les variables i et j . Ils sont convertis en chaîne pour concaténer la légende de chaque bouton-poussoir à ajouter à la i ème ligne et à la j ème colonne.

Le code ci-dessus produit la sortie suivante -