Vous êtes sur la page 1sur 4

Mme Saoussen Maâloul Belghith LPS - 4 èmeAnnée scientifique

Création d’interface homme machine avec Qt Designer

Qt Designer est un logiciel qui permet de créer des interfaces graphiques. Il est basé sur la technique de glisser -
déposer en fournissant des éléments prédéfinis appelés widgets (gadgets pour windows).
Les interactions avec l’utilisateur sont gérées par un mécanisme appelé signal/slot :
- Un signal est émis lorsqu’un événement particulier se produit
- Un slot est une fonction qui va être appelée en réponse à un signal particulier
- L’association d’un signal à un slot est réalisée par une connexion avec l’appel con nect()

1- Barre de Menu
2- Au centre de Qt Designer, vous avez la
fenêtre dans la quelle vous pouvez importer
des objets.
3-Widget Box : Il vous donne la possibilité de
sélectionner un widget à placer sur la fenêtre.
4- Property Editor : lorsqu'un widget est
sélectionné sur la fenêtre principale, vous
pouvez éditer ses propriétés. Vous noterez
que les widgets possèdent en général beaucoup
de propriétés, et que celles-ci sont organisées
en fonction de la classe dans laquelle elles ont
été définies.
5-Object Inspector : affiche la liste des
widgets placés sur la fenêtre.
6-Signal / slot editor : si vous avez associé
des signaux et des slots, les connexions du
widget sélectionné apparaissent ici.
7-Resource Browser : un petit utilitaire qui
vous permet de naviguer à travers les fichiers
de ressources de votre application .

-1-
Mme Saoussen Maâloul Belghith LPS - 4 èmeAnnée scientifique

De la boîte des widgets, on ne va utiliser, dans ce qui suit, que ces éléments :

ANNEXE

from PyQt5.uic import loadUi


from PyQt5.QtWidgets import QApplication
# Définition des modules à utiliser
……………………………………………………………………
……………………………………………………………………
……………………………………………………………………
app = QApplication ([]) #Création de l’application à utiliser
nom_de_la_fenêtre =loadUi('nom_du_fichier_de_l’interface.ui') #Création de la fenêtre
nom_de_la_fenêtre.show() #Affichage de la fenêtre
nom_de_la_fenêtre.nom_du_bouton.clicked.connect(nom_du_module) #Exécution du bouton
app.exec_() #Exécuter l’application créée

• Pour récupérer une saisie d’une zone de texte, on utilise l’instruction suivante :
nom_de_la_fenêtre.nom_de_la_zone_de_texte.text( )
Exemple : P1.X.text( )

• Pour afficher dans une zone de texte, on utilise l’instruction suivante :


nom_de_la_fenêtre.nom_de_la_zone_de_texte.setText(message )
Exemple : P1.X.setText(‘Merci’ )

• Pour fermer une fenêtre, on utilise l’instruction suivante :


nom_de_la_fenêtre.close( )
Exemple : P1.close( )

• Pour effacer le contenu d’une zone de texte, on utilise l’instruction suivante :


nom_de_la_fenêtre.nom_de_la_zone_de_texte.clear( )
Exemple : P1.X.clear( )

• Pour pointer le curseur dans une zone de texte, on utilise l’instruction suivante :
nom_de_la_fenêtre.nom_de_la_zone_de_texte.setFocus( )
Exemple : P1.X.setFocus( )

-2-
Mme Saoussen Maâloul Belghith LPS - 4 èmeAnnée scientifique

Projet1 : Création d’une calculatrice :


On se propose de créer une calculatrice graphique permettant de saisir deux entiers dans deux zones de textes
et de réaliser une des opérations ci-dessous et d’afficher le résultat dans la zone associée:
• Opérations arithmétiques : +,-,*,/ , puissance
• Calcul du PGCD et PPCM des deux entiers
• Calcul de la combinaison Cx sachant que Cx = 𝑥!/(𝑦! (𝑥 − 𝑦) !)
y y

• Décomposition en facteurs premiers du premier nombre


Travail demandé:
1- Créer une interface graphique et l’enregistrer sous le nom ‘’Projet1.ui ‘’ dans un dossier ‘’Calculatrice’’ situé
dans votre dossier de travail, qui permet de saisir deux entiers X et Y dans deux zones de textes, de
réaliser les traitements demandés ci-dessus et d’afficher, à chaque fois, le résultat dans la zone de
résultat. (Cette zone de texte permettra aussi d’afficher les messages d’erreurs)
2- Ecrire le script Python afin de programmer les différents boutons créés dans l’interface, et l’enregistrer
sous le nom ‘’Projet1.py’’ dans un dossier ‘’Calculatrice’’ situé dans votre dossier de travail

Line Edit
Label

Push Button

Label
Line Edit

Push Button
Les propriétés des objets utilisés dans ce widget :
- Les Line Edit X, Y et résultat ont pour ObjectName respectivement : X, Y, Resultat
- Les Boutons ont pour ObjectName respectivement add, sous, mult, div, puiss, pgcd, ppcm, comb, factprem,
Reset, Fermer

Projet 2 : suite stationnaire


Soit U0 un entier naturel de 4 chiffres, on forme avec les quatre chiffres de U0 le plus grand entier maximu m
et le plus petit entier minimum. Leur différence (maximum - minimum) donne un nombre entier U1. On refait le
même travail pour U1 et on obtient ainsi une suite. Cette suite est stationnaire c’est à dire elle devient
constante à partir d’un certain rang. On se propose de créer une interface graphique « projet2.ui » et un script
python « projet2.py » permettant de saisir un entier positif U0 composé de quatre chiffres et d’afficher tous
les termes de cette suite jusqu’à ce qu’elle devienne constante.
Exemple : Pour U0=4976, l’interface affichera : 4976|5085|7992|7173|6354|3087|8352|6174

-3-
Mme Saoussen Maâloul Belghith LPS - 4 èmeAnnée scientifique

Projet 3 : La multiplication russe


La multiplication russe est l’une des méthodes permettant la multiplication de deux entiers A et B, en utilisant
seulement la division, la multiplication par 2 et l’addition selon le principe suivant :
• Le premier nombre est multiplié par 2 et le deuxième nombre est divisé par 2 (division entière ).
• Ce processus est répété jusqu’à avoir 1 comme valeur du deuxième nombre.
• Les deux nombres de départ ainsi que les résultats de calcul seront mis dans deux tableaux D et M (M contiendra
les différentes valeurs du premier nombre et D contiendra les différentes valeurs du second nombre)
• Calculer le produit en additionnant les entiers du tableau M se trouvant aux positions relatives aux nombres
impaires du tableau D
Exemple : Soient : A=10 et B=12 , On construit les deux tableaux

M 10 20 40 80 D 12 6 3 1 10 * 12 = 40+80= 120

Travail demandé:
- Créer une interface graphique et l’enregistrer sous le nom ‘’Projet3.ui’’ dans un dossier ‘’Russe’’ situé
dans votre dossier de travail, contenant deux zones de textes, un bouton et un label pour afficher le
résultat. (Nb: cette zone peut être exploitée pour afficher les messages d’erreurs)
- Ecrire un script python afin de programmer ce bouton, et l’enregistrer sous le nom ‘’Projet3.py’’ dans
un dossier ‘’Russe’’ situé dans votre dossier de travail. Le clic sur le bouton Calculer permet de vérifier
la validité des deux entiers saisis (chacun ϵ [2..100]) et de calculer le produit en appliquant la méthode
russe décrite ci-dessus.

Projet 4 : Conversion de la base décimale à la base binaire


Il s'agit de faire une suite de divisions euclidiennes par 2. Jusqu’à avoir un quotient égal à zéro.
Le résultat sera la juxtaposition des restes.
NB : le reste ( 0 ou 1)
On se propose de créer une interface graphique ‘’projet4.ui’’ et un script
python ‘’projet4.py’’ permettant de saisir un entier positif d’afficher sa
conversion en binaire.

-4-

Vous aimerez peut-être aussi