0% ont trouvé ce document utile (0 vote)
322 vues2 pages

Python&Qt5 2021 2022

Le document décrit comment créer des interfaces graphiques avec Python et la bibliothèque Qt. Il explique l'utilisation de widgets comme les fenêtres, labels et boutons. Il présente également les concepts de signaux et slots pour gérer les événements.

Transféré par

Ghofrane Mzoughi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
322 vues2 pages

Python&Qt5 2021 2022

Le document décrit comment créer des interfaces graphiques avec Python et la bibliothèque Qt. Il explique l'utilisation de widgets comme les fenêtres, labels et boutons. Il présente également les concepts de signaux et slots pour gérer les événements.

Transféré par

Ghofrane Mzoughi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 2

Année 2021-2022-BAC Maths, Sciences et Techniques Matière: Informatique

Interface graphique avec Python et Qt5


Dans de nombreux domaines comme la domotique ou la météo, l’interface graphique est privilégiée au mode texte.
On va faire la programmation des interfaces graphiques (GUI : Graphical User Interface)
avec PyQt5 qui permet d’utiliser la bibliothèque Qt version 5 avec Python.
Qt offre des composants d’interface graphique (widgets), en utilisant les mécanismes des
signaux et slots. Examples de widgets : fenêtre, label, Line Edit, Push Button,…

Un signal est un message envoyé par un widget lorsqu’un évènement se produit.(exemple : On a


cliqué sur un bouton). Un slot est la fonction qui est appelée lorsqu’un événement s’est produit.
On dit que le signal appelle le slot. Un signal est connecté au slot via la fonction connect() .
NB : On va utiliser Thonny IDE et Qt Designer après installation de PyQt5 et pyqt5-tools.
Voir les étapes d’installation sous Windows dans la vidéo suivante: https://tinyurl.com/thonny-qt5

① Création de l’interface en utilisant Qt Designer :

File  New  Widget, Renommer les objets, puis enregistrer le fichier sous le nom: interface.ui dans un dossier "QT"

② Importation de l’interface avec Python :

Dans Thonny ecrire un script Python projet1.py et l’enregistrer dans le même dossier "QT" permettant de charger
l’interface graphique .
Prof: N.DHIFALLAH Page 1 / 2 Année scolaire 2021-2022
Année 2021-2022-BAC Maths, Sciences et Techniques Matière: Informatique
③ Utilisatation des widgets dans un script Python :

 Modifier le texte d’un label : fen.titre.setText(' Un Titre ')


 Récupérer le texte d’un label dans une variable : ch=fen.titre.text()
 Effacer le contenu d’un label : fen.titre.clear()
 Mettre un nombre dans d’un label : fen.titre.setNum(18.5)
Voir plus: https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QLabel.html

fonction :
 Récupérer le texte d’un « Line Edit » dans une variable : ch=fen.champ_saisie.text()
Slots :
 Modifier le texte d’un « Line Edit » : fen.champ_saisie.setText(' Un texte ')
 Effacer le contenu d’un « Line Edit » : fen.champ_saisie.clear()
 Ajouter à la fin du contenu du champ de saisie : fen.champ_saisie.insert ('plus')
Signaux :
 Un signal est émis chaque fois que le texte est édité, et le traitement 1 est exécuté
def traitement1() :
………
fen.champ_saisie.textEdited.connect(traitement1)
Remarque : Il y a aussi textChanged :Detection de changement de champ de saisie par edition ou par affectation de variable.
 Un signal est émis chaque fois que la touche « Entrée » est enfoncée dans le champ de saisie, et le traitement 2 est exécuté.
def traitement2() :
………
fen.champ_saisie.returnPressed.connect(traitement2)
https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QLineEdit.html

Signaux : ● Un signal est émis chaque fois que le bouton est appuyé, et le traitement 3 est exécuté
def traitement3() :
………
fen.bouton.clicked.connect(traitement3)
Remarque 1: Il y a aussi les signaux pressed() et released()
Remarque 2: On peut fermer l’application en utilisant : fen.bouton.clicked.connect(fen.close)
On peut effacer le contenu du champ de saisie: fen.bouton.clicked.connect(fen.champ_saisie.clear)
Voir plus: https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/QPushButton.html

Exemple de script Python : (Ecrire un texte dans le champ de saisie puis cliquer sur le bouton pour le reproduire dans le label titre)
# importations à faire pour la réalisation d'une interface graphique
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication

def traitement1():
x=fen.champ_saisie.text()
fen.titre.setText(x)

app=QApplication([]) #Création d'une application Qt avec QApplication


fen=loadUi('interface.ui') # Charger la fenêtre à partir d'un fichier
fen.show() #Rendre la fenêtre visible
fen.bouton.clicked.connect(traitement1)
app.exec() #Exécution de l'application (permet de gérer les événements en boucle(event loop))
#l’exécution n’arrive à ce niveau qu’après avoir quitté l’application

Document: Interface graphique avec Python et Qt5-Novembre 2021- lien: http://www.algo.tn/drive/


Webographie: https://courspython.com/interfaces.html , https://www.pythonguis.com/tutorials/creating-your-first-pyqt-window/ , https://www.framboise314.fr/pyqt5-developpez-vos-interfaces-graphiques-en-python/
https://openclassrooms.com/fr/courses/1894236-programmez-avec-le-langage-c/1899731-utilisez-les-signaux-et-les-slots

Prof: N.DHIFALLAH Page 2 / 2 Année scolaire 2021-2022

Vous aimerez peut-être aussi