PyQt5 Tutorials

Maîtrise des Layouts Box PyQt5 : QVBoxLayout et QHBoxLayout

Spread the love

PyQt5 fournit des gestionnaires de disposition puissants pour organiser efficacement les widgets. Les dispositions en boîte, spécifiquement QVBoxLayout (verticale) et QHBoxLayout (horizontale), sont fondamentales pour créer des interfaces utilisateur structurées. Ce tutoriel explore ces dispositions, en démontrant leur utilisation et comment contrôler l’alignement des widgets.

Table des matières :

Disposition en boîte verticale (QVBoxLayout)

QVBoxLayout organise les widgets verticalement, les empilant les uns au-dessus des autres. Ceci est idéal pour créer des formulaires, des listes, ou tout scénario nécessitant une disposition en colonnes.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QPushButton

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Exemple de disposition en boîte verticale")

layout = QVBoxLayout()
layout.addWidget(QLabel("Ceci est une étiquette."))
layout.addWidget(QPushButton("Cliquez-moi !"))
layout.addWidget(QLabel("Une autre étiquette."))

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Ce code crée une fenêtre avec une disposition verticale contenant une étiquette, un bouton et une autre étiquette.

Disposition en boîte horizontale (QHBoxLayout)

QHBoxLayout organise les widgets horizontalement, les plaçant côte à côte. Utilisez ceci pour les barres d’outils, le regroupement des contrôles associés, ou l’organisation des widgets en ligne.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QLabel, QPushButton

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Exemple de disposition en boîte horizontale")

layout = QHBoxLayout()
layout.addWidget(QLabel("Étiquette 1"))
layout.addWidget(QPushButton("Bouton 1"))
layout.addWidget(QLabel("Étiquette 2"))

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Cet exemple est similaire au précédent, mais utilise QHBoxLayout pour une disposition horizontale.

Contrôle de l’alignement des widgets

Les widgets dans les dispositions en boîte sont par défaut alignés en haut/à gauche. Pour contrôler l’alignement, utilisez la méthode setAlignment() avec des drapeaux comme Qt.AlignHCenter (centre horizontal), Qt.AlignVCenter (centre vertical), ou des combinaisons de ceux-ci. Ceci centre le widget dans l’espace qui lui est alloué dans la disposition.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QLabel, QPushButton, Qt

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Exemple d'alignement des widgets")

layout = QHBoxLayout()
label = QLabel("Étiquette centrée")
layout.addWidget(label)
layout.setAlignment(label, Qt.AlignHCenter | Qt.AlignVCenter)

button = QPushButton("Bouton")
layout.addWidget(button)

window.setLayout(layout)
window.show()
sys.exit(app.exec_())

Cet exemple centre une étiquette horizontalement et verticalement dans la disposition.

Imbrication des dispositions pour les interfaces utilisateur complexes

Pour des interfaces utilisateur plus complexes, imbriquez les dispositions les unes dans les autres. Ceci permet des dispositions complexes et un contrôle précis du placement des widgets.


import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Exemple de dispositions imbriquées")

mainLayout = QVBoxLayout()

# Disposition horizontale pour la section supérieure
topLayout = QHBoxLayout()
topLayout.addWidget(QLabel("Haut gauche"))
topLayout.addWidget(QPushButton("Haut droit"))
mainLayout.addLayout(topLayout)

# Disposition verticale pour la section inférieure
bottomLayout = QVBoxLayout()
bottomLayout.addWidget(QLabel("Bas"))
mainLayout.addLayout(bottomLayout)

window.setLayout(mainLayout)
window.show()
sys.exit(app.exec_())

Cet exemple montre l’imbrication d’une disposition horizontale dans une disposition verticale pour créer une interface utilisateur à deux sections.

Ce tutoriel fournit une base pour l’utilisation des dispositions en boîte dans PyQt5. Explorez la documentation PyQt5 pour plus d’options de disposition et de fonctionnalités avancées afin de construire des applications sophistiquées et conviviales.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *