- A propos de la bibliothèque PyQt5
- Les caractéristiques majeures de PyQt5 englobent
- Installation de PyQt5 et premier programme
- Première fenêtre PyQt5 relativement à l'approche objet
- Première fenêtre générée par Qt Designer
- Liste des propriétes et méthodes associées à une fenêtre PyQt
- Première fenêtre PyQt5 en vidéo
1. A propos de la bibliothèque PyQt5
PyQt5 se présente comme une bibliothèque open-source codée en langage Python, spécifiquement conçue pour la création d'interfaces graphiques (GUI), utilisant le framework Qt. Qt, d'autre part, est une suite de bibliothèques C++ multiplateformes permettant le développement d'applications avec une interface graphique.
L'objectif de PyQt5 est de permettre aux développeurs de concevoir des applications graphiques interactives, riches en fonctionnalités, en utilisant Python comme langage de programmation. La bibliothèque met à disposition une variété de classes et de méthodes permettant la création de fenêtres, de boîtes de dialogue, de boutons, des menus, des graphiques, des tableaux, et bien d'autres éléments.
PyQt5 est largement adopté pour le développement d'applications de bureau, de logiciels de simulation, de visualisation de données, de traitement d'images, de jeux, et bien d'autres domaines. En raison de ses fonctionnalités avancées et de sa simplicité d'utilisation, PyQt5 a gagné en popularité en tant que bibliothèque de choix pour la création d'interfaces graphiques en Python.
2. Les caractéristiques majeures de PyQt5
- Compatibilité multiplateforme : Disponible sur Windows, Linux et macOS.
- Interface graphique moderne : Offre un ensemble complet de widgets et de fonctionnalités graphiques modernes pour créer des interfaces utilisateur élégantes et interactives.
- Facilité d'utilisation : Accessible aux développeurs Python grâce à une documentation exhaustive et des exemples de code clairs.
- Performance élevée : Exploite les performances optimales de la bibliothèque Qt, assurant des applications rapides et réactives.
- Licence libre : Distribuée sous licence GPL (General Public License), permettant une utilisation gratuite pour les projets open-source.
Remarque
Noter bien que PyQt est développé par Riverbank Computing en tant que logiciel gratuit, soumis à différentes licences, dont la GPL et la licence commerciale, mais excluant la LGPL. PyQt offre un support pour Microsoft Windows ainsi que plusieurs versions d'UNIX, incluant Linux et MacOS (ou Darwin), avec une mise en œuvre comprenant environ 440 classes et plus de 6 000 fonctions et méthodes.
3. Installation de PyQt5 et premier programme
3.1 Installation de PyQt5
La bibliothèque PyQt5, peut être installé facilement via l'utilitaire pip:
1 |
pip3 install pyqt5 |
Après avoir installé la bibliothèque PyQt5, on dois installer les outils auxiliaires tools à l'aide de l'invite de commande:
1 |
pip3 install pyqt5-tools |
3.2 Première fenêtre graphique PyQt5
Pour créer une fenêtre graphique en PyQt5, on dois:
- Importer le module système : sys
- Importer la classe qui génère l'application : QApplications depuis le package PyQt5.QtWidgets
- Importer la classe QWidget depuis le package PyQt5.QtWidgets
- Créer une application à l'aide de la méthode instance() de la classe QApplication
- Créer une fenêtre avec la méthode QWidget(): fen = QWidget()
- Visualiser la fenêtre à l'aide de la méthode show() : fen.show()
- Exécuter l'application à l'aide de la méthode exec_() : app.exec_()
Code première fenêtre graphique avec PyQt5:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import sys from PyQt5.QtWidgets import QApplication, QWidget # create a PyQt5 application app = QApplication(sys.argv) # create a QWidget object win = QWidget() # Make a window title win.setWindowTitle("This is a first PyQt5 app !") # define a geometry of the window win.setGeometry(100 , 100 , 500 , 400) # apply the show method to view the window win.show() sys.exit(app.exec_()) |
Ce qui affiche une jolie fenêtre à l'exécution:
Remarque
L'instruction 'sys.argv' est une liste en Python qui contient les arguments passés à un script Python lorsqu'il est exécuté en ligne de commande. Dans le contexte de la création d'une application PyQt, sys.argv peut être utilisé pour passer des arguments de ligne de commande à l'application, comme le nom du fichier de configuration ou le mode de débogage.
Lorsque vous créez une application PyQt, vous pouvez utiliser sys.argv pour récupérer les arguments de ligne de commande passés à l'application. Par exemple, si vous avez un script Python qui crée une instance de votre application PyQt, vous pouvez utiliser sys.argv pour passer des arguments de ligne de commande à l'application lorsqu'elle est exécutée.
4. Première fenêtre PyQt5 relativement à l'approche objet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import sys from PyQt5.QtWidgets import QApplication, QWidget class MyFirstPyQt5(QWidget): # Constructeur de la classe def __init__(self): super().__init__() def initUI(self): self.setWindowTitle("First PyQt5 from object approach") self.setGeometry(100 , 100 , 400 , 150) if __name__ == '__main__': app = QApplication(sys.argv) # création de ma première fenêtre PyQt5 myWin = MyFirstPyQt5() myWin.initUI() myWin.show() sys.exit(app.exec_()) |
5. Première fenêtre générée par Qt Designer
L'usage de Qt Designer pour générer automatiquement le code est souvent souhaitable dans de nombreux cas. Qt Designer est un outil visuel qui permet de concevoir des interfaces graphiques de manière intuitive, sans nécessiter la saisie manuelle du code. Voici un exemple de code d'une fenêtre PyQt5 généré automatiquement par Qt Designer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'first.ui' # Created by: PyQt5 UI code generator 5.15.4 # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(533, 371) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Form = QtWidgets.QWidget() ui = Ui_Form() ui.setupUi(Form) Form.show() sys.exit(app.exec_()) |
6. Liste des propriétes et méthodes associées à une fenêtre PyQt
Cette liste énumère davantage de propriétés et méthodes couramment utilisées avec les fenêtres PyQt5. Pour une référence complète, consultez la documentation officielle de PyQt5.
6.1 Propriétés Courantes
- windowTitle : Permet de définir ou récupérer le titre de la fenêtre.
- geometry : Permet de définir ou récupérer la géométrie de la fenêtre (position et taille).
- centralWidget : Permet de définir ou récupérer le widget central de la fenêtre.
- statusBar : Permet de récupérer la barre d'état associée à la fenêtre.
- menuBar : Permet de récupérer la barre de menus associée à la fenêtre.
- toolBarArea : Récupère la zone où se trouve la barre d'outils principale.
- toolBarBreak : Récupère la position actuelle de rupture de la barre d'outils.
- toolBarBreakable : Indique si la barre d'outils peut être rompue à la position actuelle.
- toolBarMovable : Indique si la barre d'outils peut être déplacée.
- toolBarVisibile : Indique si la barre d'outils est visible.
6.2 Méthodes Courantes
- show : Affiche la fenêtre.
- close : Ferme la fenêtre.
- resize : Redimensionne la fenêtre.
- move : Déplace la fenêtre à une position spécifiée.
- setWindowTitle : Permet de définir le titre de la fenêtre.
- setCentralWidget : Permet de définir le widget central.
- statusBar : Récupère la barre d'état associée à la fenêtre.
- setStatusTip : Permet de définir le texte d'info-bulle dans la barre d'état.
- addToolBar : Ajoute une barre d'outils à la fenêtre.
- addToolBarBreak : Ajoute une rupture à la barre d'outils.
- addDockWidget : Ajoute un widget de type dock à la fenêtre.
- addToolBarBreak : Ajoute une rupture à la barre d'outils.
- addToolBarBreak : Ajoute une rupture à la barre d'outils.
- addToolBarBreak : Ajoute une rupture à la barre d'outils.
- addToolBarBreak : Ajoute une rupture à la barre d'outils.
- addToolBarBreak : Ajoute une rupture à la barre d'outils.
- corner : Récupère le coin spécifié du widget central de la fenêtre.
- restoreState : Restaure l'état enregistré précédemment de la fenêtre.
- saveState : Enregistre l'état actuel de la fenêtre.
- setMenuBar : Définit la barre de menus associée à la fenêtre.
- setStatusBar : Définit la barre d'état associée à la fenêtre.
- setToolButtonStyle : Définit le style des boutons dans la barre d'outils.
- setUnifiedTitleAndToolBarOnMac : Indique si la barre de titre et la barre d'outils sont unifiées sur macOS.
- splitDockWidget : Divise un widget dockable dans le dock de la fenêtre.
- tabifyDockWidget : Agence les widgets dockables en onglets.
- removeDockWidget : Retire le widget de type dock de la fenêtre.
- setCorner : Définit le coin spécifié du widget central.
- setDockNestingEnabled : Active ou désactive l'emboîtement des widgets de type dock.
7. Première fenêtre PyQt5 en vidéo
7.1 Code d'une première fenêtre PyQt5 en vidéo
7.2 Première fenêtre PyQt5 à l'aide de Qt Designer
Younes Derfoufi
CRMEF OUJDA