PyQt - Classe QBoxLayout

QBoxLayoutclass aligne les widgets verticalement ou horizontalement. Ses classes dérivées sontQVBoxLayout (pour organiser les widgets verticalement) et QHBoxLayout(pour organiser les widgets horizontalement). Le tableau suivant montre les méthodes importantes de la classe QBoxLayout -

N ° Sr. Méthodes et description
1

addWidget()

Ajouter un widget au BoxLayout

2

addStretch()

Crée une boîte extensible vide

3

addLayout()

Ajouter une autre mise en page imbriquée

Exemple 1

Ici, deux boutons sont ajoutés dans la disposition de la boîte verticale. Un espace vide extensible est ajouté entre eux par la méthode addStretch (). Par conséquent, si la fenêtre de niveau supérieur est redimensionnée, la position des boutons est automatiquement déplacée.

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()
	
   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")
   
   vbox = QVBoxLayout()
   vbox.addWidget(b1)
   vbox.addStretch()
   vbox.addWidget(b2)
   win.setLayout(vbox)

   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

Le code ci-dessus produit la sortie suivante -

Exemple 2

Cet exemple utilise une disposition de boîte horizontale. La méthode addStretch () insère un espace vide extensible entre les deux objets bouton. Par conséquent, lorsque la fenêtre est redimensionnée, la taille et la position du bouton changent de manière dynamique.

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()
   
   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")

   hbox = QHBoxLayout()

   hbox.addWidget(b1)
   hbox.addStretch()
   hbox.addWidget(b2)
   win.setLayout(hbox)
   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())
	
if __name__ == '__main__':
   window()

Le code ci-dessus produit la sortie suivante -

Exemple 3

Cet exemple montre comment les dispositions peuvent être imbriquées. Ici, deux boutons sont ajoutés à la disposition de la boîte verticale. Ensuite, un objet de disposition de boîte horizontale avec deux boutons et un espace vide extensible y est ajouté. Enfin, l'objet de disposition de la boîte verticale est appliqué à la fenêtre de niveau supérieur par la méthode setLayout ().

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   b1 = QPushButton("Button1")
   b2 = QPushButton("Button2")
	
   vbox = QVBoxLayout()
   vbox.addWidget(b1)
   vbox.addStretch()
   vbox.addWidget(b2)
   hbox = QHBoxLayout()
	
   b3 = QPushButton("Button3")
   b4 = QPushButton("Button4")
   hbox.addWidget(b3)
   hbox.addStretch()
   hbox.addWidget(b4)

   vbox.addStretch()
   vbox.addLayout(hbox)
   win.setLayout(vbox)

   win.setWindowTitle("PyQt")
   win.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   window()

Le code ci-dessus produit la sortie suivante -