Interface Graphique Classe: 4èmeSc
Interface graphique avec Python
Exercice guidé : Faire une interface graphique d’un programme Python qui permet de saisir un entier strictement
positif et calculer sa factorielle.
On demande un algorithme avec modularité puis un code Python, et enfin, intégrer l’interface graphique et mener les
changements nécessaires
Partie I : Algorithme du programme principal
Algorithme Factoriel
objet Type/N
Debut F,i Entiers
saisir ( n ) fact Fonction
F fact ( n ) saisir Procedure
Ecrire ( F )
Fin
Procédure Fonction
Procédure saisir ( @ n : entier ) Fonction fact ( n : entier ) : entier
Début Début
Répéter f1 objet Type/N
Lire ( n ) Pour i de 0 à n-1 faire f Entier
Jusqu’à n > 0 fF*i i Entier
Fin Fin Pour
Retourner f
Fin
Partie II : Interface graphique
Objectif : Améliorer l’affichage lors de l’exécution d’un exercice, via une interface conviviale composée par des
zones de textes, des étiquettes (Labels) et des boutons.
Etape 1: Installer les logiciels et les composantes nécessaires
1. Lancer QT DESIGNER pour concevoir l’interface graphique suivant :
L’interface est composée de 2 « label», 1 « Push button » et 1 « line edit ».
1/2
Interface Graphique Classe: 4èmeSc
1.1 Lors du chargement de QT DESIGNER, créer un « Widget» c’est-à-dire une fenêtre vide sans objets.
1.2 Aller à « Boite de widget » à gauche, descendre vers « display widgets » , glisser/déplacer l’objet
«Label» vers l’interface, double cliquer et écrire « donner un entier ».
1.3 Refaire de même pour le texte « factoriel ».
1.4 Aller à « Boite de widget », descendre vers « Input widgets », glisser/déplacer l’objet « Line edit » vers
l’interface. aller à droite vers «Inspecteur d’objet» , modifier le nom « LineEdit » vers « txt1 ».
1.5 Refaire de même pour la zone résultat et nommer l’objet « txt2 ».
1.6 Ajouter le bouton « calculer » en allant vers «Boite de widget» puis « buttons » ensuite glisser/déplacer
l’objet « push button », y saisir « calculer », le nommer « b ».
1.7 Enregistrer sur votre dossier de travail cette fenêtre par le nom « [Link] »
Etape 2: Lancer Thnny et saisir le code suivant relatif à l’appel de la bibliothèque «PyQt5» et ses composantes et
mettre le fichier python sur le même dossier de travail.
from [Link] import loadUi
# Importations à faire pour réaliser une interface graphique.
from [Link] import QApplication
La récupération de l’entier saisie par l’utilisateur dans la zone « txt1 » se fait via la commande [Link]()
L’affichage du résultat dans la zone « txt2 » se fait via la commande [Link](ch)
L’affichage se fera sous format texte, pour cela on doit convertir le résultat trouvé entier vers texte via ch = str(f)
def saisir ():
global n
n = int([Link]())
while not (n > 0) :
n = int([Link]()) # Saisir/ récupération d’un entier positif dans la zone texte text1
def fact ( ) :
f= 1
for i in range (1, n+1):
f=f*i
return f
La fonction Factoriel joue le rôle d’un programme principal qui appelle les modules voulues :
def Factoriel ():
saisir()
F = fact()
ch = str(F) # Afficher le résultat dans la zone texte text2. (On doit convertit sous format texte)
[Link](ch)
Rajouter à la fin de la fenêtre Thonny le code suivant qui permet de reconnaitre l’interface déjà créée (win), avec
Python, l’appeler et exécuter le programme factoriel dès qu’on clique sur le bouton « b ».
app = QApplication([]) # Création d'une instance d'application (Appel)
win = loadUi("[Link]") # Charger le fichier crée par Qt Designer (reconnaitre)
[Link]() # Afficher la fenêtre
[Link](Factoriel) # Signal (événement) : clic sur le bouton b: Appel du module Factoriel
app.exec_() # Exécution de l'application (Exécuter)
2/2