1. A propos de PyQt5
PyQt5 est une bibliothèque Python open-source qui permet de développer des applications GUI (Graphical User Interface) en utilisant le framework Qt. Qt est un ensemble de bibliothèques C++ multiplateformes qui permettent de créer des applications avec une interface graphique.
PyQt5 permet aux développeurs de créer des applications graphiques riches et interactives en utilisant Python comme langage de programmation. La bibliothèque fournit des classes et des méthodes pour créer des fenêtres, des boîtes de dialogue, des boutons, des menus, des graphiques, des tableaux et bien plus encore.
Les principales caractéristiques de PyQt5 incluent :
- Compatibilité multiplateforme : PyQt5 est disponible pour les systèmes d'exploitation Windows, Linux et macOS.
- Interface graphique moderne : PyQt5 fournit un ensemble complet de widgets et de fonctionnalités graphiques modernes qui permettent de créer des interfaces utilisateur élégantes et interactives.
- Facilité d'utilisation : PyQt5 est facile à apprendre et à utiliser pour les développeurs Python grâce à une documentation complète et à des exemples de code clairs.
- Performance élevée : PyQt5 utilise les performances optimales de la bibliothèque Qt pour fournir des applications rapides et réactives.
- Licence libre : PyQt5 est distribué sous licence GPL (General Public License), ce qui signifie que la bibliothèque peut être utilisée gratuitement pour les projets open-source.
PyQt5 est largement utilisé pour le développement d'applications de bureau et de logiciels de simulation, de visualisation de données, de traitement d'images, de jeux et de nombreux autres domaines. Grâce à ses fonctionnalités avancées et à sa facilité d'utilisation, PyQt5 est une bibliothèque populaire pour le développement d'interfaces graphiques en Python.
PyQt est un logiciel gratuit développé par la firme Riverbank Computing. Il est disponible dans des conditions similaires aux versions Qt antérieures et cela signifie une variété de licences, dont la GNU Général Public Licence (GPL) et la licence commerciale, mais pas la GNU Lesser Général Public Licence (LGPL). PyQt prend en charge Microsoft Windows ainsi que diverses versions d'UNIX, y compris Linux et MacOS (ou Darwin). PyQt implémente environ 440 classes et plus de 6 000 fonctions et méthodes.
2 - Installation de PyQt5 et premier programme
2.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 |
2.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.
3. Première fenêtre PyQt5 selon l'approche objet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import sys from PyQt5.QtWidgets import QApplication, QWidget class MyWindow(QWidget): def __init__(self , win ): super().__init__() self.win = win def build(self): self.win.setWindowTitle("PyQt5 from object approach") self.win.setGeometry(100 , 100 , 400 , 150) if __name__ == '__main__': app = QApplication(sys.argv) root = QWidget() mywin = MyWindow(root) mywin.build() root.show() sys.exit(app.exec_()) |
4. Première fenêtre générée 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_()) |
5. Liste des propriétes d'une fenêtre PyQt
Voici quelques propriétés courantes d'une fenêtre PyQt5 :
- windowTitle : le titre de la fenêtre
- minimumWidth : la largeur minimale de la fenêtre
- maximumWidth : la largeur maximale de la fenêtre
- minimumHeight : la hauteur minimale de la fenêtre
- maximumHeight : la hauteur maximale de la fenêtre
- sizePolicy : la politique de taille de la fenêtre
- geometry : la géométrie de la fenêtre (position et taille)
- windowIcon : l'icône de la fenêtre
- widget : le widget central de la fenêtre
- menuBar : la barre de menu de la fenêtre
- toolBar : la barre d'outils de la fenêtre
- statusBar : la barre d'état de la fenêtre
- modality : la modalité de la fenêtre
- opacity : l'opacité de la fenêtre
Il y a beaucoup plus de propriété disponibles et cela dépend de la classe de la fenêtre que vous utilisez. Il est important de consulter la documentation pour les propriétés disponibles pour la fenêtre particulière que vous utilisez.
6. Première fenêtre PyQt5 en vidéo
6.1 Première fenêtre PyQt5 à l'aide de Qt Designer
6.2 Code d'une première fenêtre PyQt5 en vidéo
Younes Derfoufi
CRMEF OUJDA
1 thought on “Première Fenêtre Graphique PyQt5”