PyQt - Classe QFormLayout

QFormLayoutest 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. Principalement trois surcharges de la méthode addRow () addLayout () sont couramment utilisées.

N ° Sr. Méthodes et description
1

addRow(QLabel, QWidget)

Ajoute une ligne contenant l'étiquette et le champ d'entrée

2

addRow(QLabel, QLayout)

Ajoute une mise en page enfant dans la deuxième colonne

3

addRow(QWidget)

Ajoute un widget couvrant les deux colonnes

Exemple

Ce code ajoute un champ LineEdit pour saisir le nom dans la première ligne. Ensuite, il ajoute une disposition de boîte verticale pour deux champs d'adresse dans la deuxième colonne de la ligne suivante. Ensuite, un objet de disposition de boîte horizontale contenant deux champs de bouton radio est ajouté dans la deuxième colonne de la troisième ligne. La quatrième ligne montre deux boutons «Soumettre» et «Annuler».

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

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

   l1 = QLabel("Name")
   nm = QLineEdit()

   l2 = QLabel("Address")
   add1 = QLineEdit()
   add2 = QLineEdit()
   fbox = QFormLayout()
   fbox.addRow(l1,nm)
   vbox = QVBoxLayout()

   vbox.addWidget(add1)
   vbox.addWidget(add2)
   fbox.addRow(l2,vbox)
   hbox = QHBoxLayout()

   r1 = QRadioButton("Male")
   r2 = QRadioButton("Female")
   hbox.addWidget(r1)
   hbox.addWidget(r2)
   hbox.addStretch()
   fbox.addRow(QLabel("sex"),hbox)
   fbox.addRow(QPushButton("Submit"),QPushButton("Cancel"))

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

if __name__ == '__main__':
   window()

Le code ci-dessus produit la sortie suivante -