Votre Première Fenêtre Graphique PyQt5

première application avec Pyqt5 ou Pyqt6 Python

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

  1. Compatibilité multiplateforme : Disponible sur Windows, Linux et macOS.
  2. 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.
  3. Facilité d'utilisation : Accessible aux développeurs Python grâce à une documentation exhaustive et des exemples de code clairs.
  4. Performance élevée : Exploite les performances optimales de la bibliothèque Qt, assurant des applications rapides et réactives.
  5. 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:

Après avoir installé la bibliothèque PyQt5, on dois installer les outils auxiliaires tools à l'aide de l'invite de commande:

3.2 Première fenêtre graphique PyQt5

Pour créer une fenêtre graphique en PyQt5, on dois:

  1. Importer le module système : sys
  2. Importer la classe qui génère l'application : QApplications depuis le package PyQt5.QtWidgets
  3. Importer la classe QWidget depuis le package PyQt5.QtWidgets
  4. Créer une application à l'aide de la méthode instance() de la classe QApplication
  5. Créer une fenêtre avec la méthode QWidget():  fen = QWidget()
  6. Visualiser la fenêtre à l'aide de la méthode show() : fen.show()
  7. Exécuter l'application à l'aide de la méthode exec_() : app.exec_()

Code première fenêtre graphique avec PyQt5:

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

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:

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

  1. windowTitle : Permet de définir ou récupérer le titre de la fenêtre.
  2. geometry : Permet de définir ou récupérer la géométrie de la fenêtre (position et taille).
  3. centralWidget : Permet de définir ou récupérer le widget central de la fenêtre.
  4. statusBar : Permet de récupérer la barre d'état associée à la fenêtre.
  5. menuBar : Permet de récupérer la barre de menus associée à la fenêtre.
  6. toolBarArea : Récupère la zone où se trouve la barre d'outils principale.
  7. toolBarBreak : Récupère la position actuelle de rupture de la barre d'outils.
  8. toolBarBreakable : Indique si la barre d'outils peut être rompue à la position actuelle.
  9. toolBarMovable : Indique si la barre d'outils peut être déplacée.
  10. toolBarVisibile : Indique si la barre d'outils est visible.

6.2 Méthodes Courantes

  1. show : Affiche la fenêtre.
  2. close : Ferme la fenêtre.
  3. resize : Redimensionne la fenêtre.
  4. move : Déplace la fenêtre à une position spécifiée.
  5. setWindowTitle : Permet de définir le titre de la fenêtre.
  6. setCentralWidget : Permet de définir le widget central.
  7. statusBar : Récupère la barre d'état associée à la fenêtre.
  8. setStatusTip : Permet de définir le texte d'info-bulle dans la barre d'état.
  9. addToolBar : Ajoute une barre d'outils à la fenêtre.
  10. addToolBarBreak : Ajoute une rupture à la barre d'outils.
  11. addDockWidget : Ajoute un widget de type dock à la fenêtre.
  12. addToolBarBreak : Ajoute une rupture à la barre d'outils.
  13. addToolBarBreak : Ajoute une rupture à la barre d'outils.
  14. addToolBarBreak : Ajoute une rupture à la barre d'outils.
  15. addToolBarBreak : Ajoute une rupture à la barre d'outils.
  16. addToolBarBreak : Ajoute une rupture à la barre d'outils.
  17. corner : Récupère le coin spécifié du widget central de la fenêtre.
  18. restoreState : Restaure l'état enregistré précédemment de la fenêtre.
  19. saveState : Enregistre l'état actuel de la fenêtre.
  20. setMenuBar : Définit la barre de menus associée à la fenêtre.
  21. setStatusBar : Définit la barre d'état associée à la fenêtre.
  22. setToolButtonStyle : Définit le style des boutons dans la barre d'outils.
  23. setUnifiedTitleAndToolBarOnMac : Indique si la barre de titre et la barre d'outils sont unifiées sur macOS.
  24. splitDockWidget : Divise un widget dockable dans le dock de la fenêtre.
  25. tabifyDockWidget : Agence les widgets dockables en onglets.
  26. removeDockWidget : Retire le widget de type dock de la fenêtre.
  27. setCorner : Définit le coin spécifié du widget central.
  28. 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

La création d'une première fenêtre avec PyQt5 est un processus simple et intuitif. Vous démarrez généralement par l'importation des modules nécessaires, tels que QtWidgets de PyQt5. Ensuite, vous créez une classe qui hérite de la classe QWidget ou QMainWindow, et vous instanciez cette classe pour créer votre fenêtre principale.

7.2 Première fenêtre PyQt5 à l'aide de Qt Designer

La création d'une première fenêtre PyQt5 à l'aide de Qt Designer est une approche visuelle et intuitive. Cette approche facilite la création rapide d'interfaces graphiques en utilisant une méthode visuelle et en générant automatiquement le code Python correspondant.

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply