Les Layouts En PyQt5

layout pyqt5 QGridLayout, QVBoxLayout, QHBoxLayout

 

 

1. A propos des layouts

Les layouts en interface graphique ont pour but d'organiser d'une façon dynamique les widgets sous différentes dispositions, tandis qu'un 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 palier aux problèmes cités 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.

les layouts pyqt5 en python

 

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 simple de QGridLayout

Layout PyQt5 : Un exemple de QGridLayout contenant 4 PushButton

Exemple (QGridLayout selon l'approche objet)

 

4. QVBoxLayout (Layout Vertical)

Le layout QVBoxLayout Organise les widgets verticalement (du haut vers le bas). L'organisation se produit automatiquement sans préciser le numéro de la position.

Exemple

QVBoxLayout PyQt5 Python Exemple de 3 QpushButton

 

5. QHBoxLayout (Layout Horizontal)

Le layout QHBoxLayout organise les widgets horizontalement (de gauche à droite). La disposition se produit automatiquement sans préciser le numéro de la position.

Exemple

Python GUI PyQt5 Lyout QHBoxLayout exemple of 3 QPushButton

 

6. QFormLayout (Layout de Formulaire)

Le layout QFormLayout Organise les widgets sous forme de formulaire avec des étiquettes et des champs QLineEdit associés.

Exemple

Formulaire à l'aide QFormLayout PyQt5 Python

 

7. QStackedLayout (Layout Empilé)

Affiche un seul widget à la fois parmi plusieurs widgets empilés les uns sur les autres. Pratique pour créer des interfaces avec des pages.

Exemple

 

8. QBoxLayout

C'est une classe parent de QVBoxLayout et QHBoxLayout. Elle est utilisée pour les layouts verticaux ou horizontaux selon l'orientation spécifiée.

 

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply