Les layouts PyQt5

1 - PyQt - Positionnement absolu

Le positionnement absolu mesure la position et la taille de chaque widget en pixels. Lorsque vous utilisez le positionnement absolu, vous devez comprendre les limitations suivantes :

  1. Le redimensionnement de la fenêtre ne modifie pas la taille et la position du widget.
  2. Les applications peuvent sembler différentes sur différentes plates-formes.
  3. Changer la police de l'application peut casser la mise en page.
  4. Si vous souhaitez modifier la mise en page, vous devez la rafraîchir complètement, ce qui est très fastidieux.





2 - Les layouts PyQt5

Afin de résoudre les problème ci-dessus, PyQt5 offre un ensemble de classes permettant de gérer avec efficacité les différents widgets:

  1. QGridLayout: un objet de classe GridLayout se présente avec une grille de cellules disposées en lignes et en colonnes. La classe contient la méthode addWidget(). N'importe quel widget peut être ajouté en spécifiant le nombre de lignes et de colonnes de la cellule.
  2. QVBoxLayout: permet d'organiser les widgets verticalement
  3. QHBoxLayout: permet d'organiser les widgets horizontalement
  4. QFormLayout: est un moyen pratique de créer un formulaire à deux colonnes, où chaque ligne se compose d'un champ de saisie associé à une étiquette. Par convention, la colonne de gauche contient le libellé et la colonne de droite contient un champ de saisie.

3 - Le gestionnaire de position QGridLayout PyQt5

Un objet de la classe GridLayout se présente sous forme d'une grille de cellules disposées en lignes et en colonnes. La classe contient la méthode addWidget(). N'importe quel widget peut être ajouté en spécifiant le numéro de lignes et de colonnes de la cellule.

Syntax d'ajout d'un widget

Exemple

Remarque

Les dimensions et les positions des boutons sont dynamiques c'est-à-dire qu'elles changent lorsque la fenêtre est redimensionnée. Pour résoudre ce problème, nous devons appliquer le gridLayout à un objet frame fixe.




4 - QGridLayout selon l'approche objet

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply