Vous êtes sur la page 1sur 3

Chapitre 7 ® Interface Graphique ( N) Classe: 4èmeSc.

1+2

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 f1 objet Type/N
Lire ( n ) Pour i de 0 à n-1 faire f Entier
Jusqu’à n > 0 fF*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
Chapitre 7 ® Interface Graphique ( N) Classe: 4èmeSc.1+2

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 « fenetre.ui »
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 PyQt5.uic import loadUi
# Importations à faire pour réaliser une interface graphique.
from PyQt5.QtWidgets import QApplication
 La récupération de l’entier saisie par l’utilisateur dans la zone « txt1 » se fait via la commande win.txt1.text()
 L’affichage du résultat dans la zone « txt2 » se fait via la commande win.txt2.setText(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(win.txt1.text())
while not (n > 0) :
n = int(win.txt1.text()) # 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

2/2
Chapitre 7 ® Interface Graphique ( N) Classe: 4èmeSc.1+2
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
win.txt2.setText(ch) texte)
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("fenetre.ui") # Charger le fichier crée par Qt Designer (reconnaitre)
win.show() # Afficher la fenêtre
win.b.clicked.connect(Factoriel) # Signal (événement) : clic sur le bouton b: Appel du module
Factoriel
app.exec_() # Exécution de l'application (Exécuter)

3/2

Vous aimerez peut-être aussi