Python GUI
Interfaces graphiques avec Python
Année scolaire 2021 - 2022
Mourad SFAR
Inspecteur principal de l’enseignement préparatoire et secondaire
PLAN
▪ Introduction
▪ PyQt
▪ La programmation évènnementielle
▪ Widget, Signal, Slot
▪ Création d’interface graphique avec PyQt5
en mode textuel
▪ Création d’interface graphique avec PyQt5
en mode graphique
▪ Présentations des widgets PyQt
▪ Les méthodes
Introduction
Les interfaces graphiques :
• Programme plus convivial
• Programme fonctionnant d’une manière
différente
• Programmation évènementielle
Introduction
Création d’interfaces graphiques avec :
Tkinter PyQt5
wxPython QtDesigner
Introduction
Une interface graphique = Un environnement graphique
GUI pour Graphical User Interface
Introduction
La programmation séquentielle
La programmation événementielle
PyQt
PyQt est un module libre qui permet de lier le
langage Python avec la bibliothèque Qt distribué sous
deux licences : une commerciale et la GNU GPL. Il
permet ainsi de créer des interfaces graphiques en
Python. Une extension de Qt Creator permet de
générer le code Python d'interfaces graphiques.
La programmation
évènementielle
Contrairement à une application en mode console, qui est
exécutée de manière séquentielle, une interface graphique
est pilotée par les événements. Les fonctions ou méthodes
sont exécutées en réponse aux actions de l'utilisateur
comme cliquer sur un bouton, sélectionner un élément
dans une collection ou un clic de souris, etc.,
appelés événements.
Widget, Signal, Slot
Les widgets utilisés pour créer l'interface GUI agissent
comme la source de ces événements. Chaque widget
PyQt, qui est dérivé de la classe QObject, est conçu pour
émettre un «signal» en réponse à un ou plusieurs
événements. Le signal seul n'effectue aucune action. Au
lieu de cela, il est «connecté» à un «slot». Le slot peut être
n'importe quelle fonction Python appelable.
PyQt5 en mode textuel
PyQt5 en mode textuel
PyQt5 en mode graphique
PyQt5 en mode graphique avec QtDesigner
Les étapes
Installation de la bibliothèque PyQt5
pip install PyQt5
Installation de la bibliothèque PyQt5-tools
pip install PyQt5-tools
Interface QtDesigner
Interface QtDesigner
Activité 1
Intégration de l’interface dans le
code Python
Il existe deux manières d’intégration des fenêtres et des
boites de dialogue dans une application, c’est-à-dire
l’intégration de l’interface GUI dans le code Python :
• Translation du contenu du fichier .ui dans le code Python
en utilisant [Link]
python -m [Link] -x [Link] -o [Link]
• Chargement du contenu du fichier .ui de façon dynamique
en utilisant [Link]()
dlg = [Link]("[Link]")
Interface QtDesigner
Activité 2
Les Widgets
Nom du Widget Rôle du Widget
QLabel Cet objet agit comme un espace réservé pour afficher du texte ou une image non
modifiable, ou un film de GIF animé. Il peut également être utilisé comme clé
mnémotechnique pour d'autres widgets. Texte brut, lien hypertexte ou du texte
enrichi peut être affiché sur l'étiquette.
QLineEdit Cet objet est le champ de saisie le plus couramment utilisé. Il fournit une boîte
dans laquelle une ligne du texte peut être saisie. Afin de saisir du texte multiligne,
l'objet QTextEdit est requis.
QPushButton Cet objet est un bouton de commande, c’est le contrôle le plus important et le plus
souvent utilisé.
Les boutons avec Enregistrer, Ouvrir, OK, Oui, Non et Annuler etc. comme légende
sont familiers à tout ordinateur utilisateur. Dans l'API PyQt, l'objet de classe
QPushButton présente un bouton qui, lorsqu'il est cliqué, peut être programmé pour
appeler une certaine fonction.
La classe QPushButton hérite de sa fonctionnalité principale de la classe
QAbstractButton. C'est rectangulaire en forme et une légende de texte ou une icône
peut être affichée sur son visage.
Les Méthodes
Nom du Widget Méthodes du Widget Attributs / Rôle
QLabel setAlignement() Définit l’alignement du texte des étiquettes
[Link]
[Link]
[Link]
[Link]
setIndent() Définit le retrait du texte des étiquettes
setPixmap() Affiche une image à partir de la pixmap d'un fichier
image dans l’étiquette
text() Récupère le texte
setText() Modifie le texte
Les Méthodes
Nom du Widget Méthodes du Widget Attributs / Rôle
QLineEdit setAlignement() [Link]
[Link]
[Link]
[Link]
clear() Efface le contenu
setEchoMode() [Link]
[Link]
[Link]
[Link]
setMaxLength() Définit le nombre maximum de caractères pour la saisie
setReadOnly() Rend la zone non modifiable
setText() Modifie le texte
text() Récupère le texte
setValidator() QIntValidator : restreint l’entrée à un entier
QDoubleValidator : restreint l’entrée à un entier ou à un réel
setInputMask() Applique un masque de combinaison de caractères pour la saisie
Les Méthodes
Nom du Widget Méthodes du Widget Attributs / Rôle
QPushButton setCheckable() Reconnaît les états enfoncés et relâchés du bouton s'il
est défini sur True
toggle() Bascule entre les états vérifiables
setIcon() Affiche une icône formée à partir de la pixmap d'un
fichier image
setEnabled() Lorsqu'il est défini sur False, le bouton devient
désactivé, donc en cliquant dessus n'émet pas de signal
isChecked() Renvoie l'état booléen (True / False) du bouton
setDefault() Définit le bouton par défaut
setText() Modifie le texte
text() Récupère le texte
Applications
Application 1
Applications
Application 2
Applications
Application 3
Applications
Application 4