Exemple de formulaire¶
Voici un exemple complet d’un formulaire PySide6 pour saisir les informations d’une nouvelle “Personne”, utilisant
QFormLayout avec des champs pour le prénom, nom, email, date de naissance, statut étudiant (case à cocher), et
plusieurs autres attributs. Cet exemple suit les bonnes pratiques décrites dans la documentation Qt.
form1.py
import sys
from PySide6.QtWidgets import (
QApplication, QWidget, QFormLayout, QLineEdit,
QDateEdit, QCheckBox, QComboBox, QSpinBox, QPushButton
)
from PySide6.QtCore import QDate
class PersonForm(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Formulaire d'inscription - Nouvelle personne")
# Création du layout de formulaire
layout = QFormLayout()
# Prénom
self.first_name_edit = QLineEdit()
layout.addRow("Prénom :", self.first_name_edit)
# Nom
self.last_name_edit = QLineEdit()
layout.addRow("Nom :", self.last_name_edit)
# Email
self.email_edit = QLineEdit()
layout.addRow("Email :", self.email_edit)
# Date de naissance
self.dob_edit = QDateEdit()
self.dob_edit.setCalendarPopup(True) # Active le calendrier pop-up
self.dob_edit.setDate(QDate.currentDate()) # Date actuelle par défaut
layout.addRow("Date de naissance :", self.dob_edit)
# Étudiant (case à cocher)
self.student_checkbox = QCheckBox("Est étudiant(e)")
layout.addRow("Étudiant :", self.student_checkbox)
# Genre (liste déroulante)
self.gender_combo = QComboBox()
self.gender_combo.addItems(["Sélectionner...", "Femme", "Homme", "Autre"])
layout.addRow("Genre :", self.gender_combo)
# Âge (champ numérique)
self.age_spin = QSpinBox()
self.age_spin.setRange(0, 120) # Plage de 0 à 120 ans
layout.addRow("Âge :", self.age_spin)
# Pays (liste déroulante)
self.country_combo = QComboBox()
self.country_combo.addItems(["Sélectionner...", "Canada", "États-Unis", "Autre"])
layout.addRow("Pays :", self.country_combo)
# Bouton de soumission
self.submit_button = QPushButton("Soumettre")
layout.addRow(self.submit_button)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = PersonForm()
window.show()
sys.exit(app.exec())
Fonctionnalités¶
- Utilise
QFormLayoutpour un formulaire propre à deux colonnes. - Chaque ligne associe une étiquette à un widget d’entrée.
- Inclut des champs de texte, sélecteur de date, case à cocher, listes déroulantes et champ numérique pour un formulaire réaliste.
- Un bouton Soumettre est placé en bas du formulaire.
Points clés¶
-
QFormLayout.addRow(label, widget):- Crée une paire étiquette-widget alignée horizontalement.
- Exemple :
layout.addRow("Prénom :", QLineEdit())
-
Widgets utilisés :
Widget Utilisation dans le formulaire QLineEditChamps de texte (prénom, nom, email) QDateEditSélecteur de date avec calendrier QCheckBoxCase à cocher pour statut étudiant QComboBoxListes déroulantes (genre, pays) QSpinBoxChamp numérique pour l’âge -
Personnalisation :
- Ajoutez/supprimez des champs en suivant le même schéma.
- Le formulaire est responsive et suit les standards d’apparence de la plateforme.
Ce modèle peut être facilement adapté pour d’autres types de formulaires en modifiant les widgets et étiquettes.