Année 2021-2022-BAC Maths, Sciences et Techniques Matière: Informatique Prof: N
Année 2021-2022-BAC Maths, Sciences et Techniques Matière: Informatique Prof: N.DHIFALLAH Page 1 / 2 Année scolaire 2021-2022 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 . Année 2021-2022-BAC Maths, Sciences et Techniques Matière: Informatique Prof: N.DHIFALLAH Page 2 / 2 Année scolaire 2021-2022 ③ 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.QtWidgets import QApplication from PyQt5.uic import loadUi 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 def traitement1(): x=fen.champ_saisie.text() fen.titre.setText(x) fen.bouton.clicked.connect(traitement1) #Exécution de l'application, l'exécution permet de gérer les événements en boucle(event loop) app.exec() #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 uploads/Sante/ python-amp-qt5-2021-2022.pdf
Documents similaires










-
27
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 02, 2021
- Catégorie Health / Santé
- Langue French
- Taille du fichier 0.5020MB