La classe QMainWindow PyQt5

QMainWindow PyQt5 Python débutant

1. Description de la classe QMainWindow

  1. QMainWindow est une classe fondamentale de PyQt5: une bibliothèque de liaisons Python pour le populaire framework d'application multiplateforme Qt. Comme son nom l'indique, QMainWindow représente la fenêtre principale d'une application PyQt5, servant de conteneur central pour les autres éléments de l'interface utilisateur graphique (GUI) et constituant la base de développement d'applications graphiques sophistiquées et à plusieurs fenêtres.
  2. Au cœur de QMainWindow: on retrouve la gestion des composants principaux de l'interface utilisateur de l'application, tels que les menus, les barres d'outils, les barres d'état et les widgets pouvant être ancrés (dockables). Ces composants sont essentiels pour créer une interface utilisateur complète et conviviale, permettant aux utilisateurs d'interagir facilement avec les différentes fonctionnalités.

2. Les fonctionnalités clés de QMainWindow

Les fonctionnalités clés de QMainWindow dans PyQt5 comprennent :

  1. Gestion des composants de l'interface utilisateur : QMainWindow agit comme le conteneur principal pour les autres éléments de l'interface utilisateur, tels que les menus, les barres d'outils, les barres d'état et les widgets. Cela permet aux développeurs de créer une interface utilisateur complète et structurée pour leur application.
  2. Widget central : QMainWindow dispose d'un widget central où les principales fonctionnalités de l'application peuvent être affichées. Ce widget peut être personnalisé en ajoutant des widgets, des dispositions (layouts) ou d'autres sous-fenêtres (dialogs) pour créer une expérience utilisateur riche et interactive.
  3. Système d'ancrage (docking system) : L'une des fonctionnalités les plus puissantes de QMainWindow est son système d'ancrage, qui permet aux widgets comme les barres d'outils et les panneaux d'être ancrés (dockés) à différents bords de la fenêtre principale ou de flotter en tant que fenêtres indépendantes. Cette flexibilité offre aux utilisateurs la possibilité de personnaliser l'agencement de l'interface selon leurs préférences.
  4. Gestion des menus : QMainWindow fournit un support complet pour la création et la gestion des menus. Les développeurs peuvent créer des menus standard, des menus contextuels et des menus personnalisés pour organiser et présenter les différentes fonctionnalités de l'application de manière claire et structurée.
  5. Barre d'état (status bar) : QMainWindow intègre une barre d'état qui permet d'afficher des informations utiles, des messages ou des retours à l'utilisateur. Cela peut inclure des mises à jour d'état, des indicateurs de progression ou des infobulles pour fournir des informations sur l'état actuel de l'application et ses opérations en cours.
  6. Gestion de l'état de l'application : La classe QMainWindow facilite la gestion de l'état et des paramètres de l'application. Les développeurs peuvent sauvegarder et restaurer l'état de la fenêtre, sa géométrie et les préférences de l'utilisateur, assurant ainsi une expérience utilisateur cohérente lors des différentes sessions d'utilisation de l'application.
  7. Gestion des événements : QMainWindow prend en charge la gestion des événements, tels que les clics de souris, les touches du clavier, etc. Cela permet aux développeurs de définir des actions en réponse à ces événements pour rendre l'application interactive et réactive aux actions de l'utilisateur.
  8. Support du style et de la personnalisation : QMainWindow offre des options pour personnaliser l'apparence de l'interface utilisateur grâce à la gestion des feuilles de style et des thèmes, permettant aux développeurs de créer des interfaces esthétiquement attrayantes et cohérentes avec le reste de l'application.
  9. Conclusion: QMainWindow de PyQt5 est une classe polyvalente qui fournit un ensemble complet de fonctionnalités pour créer des applications graphiques sophistiquées et conviviales. Son rôle en tant que conteneur principal pour les composants de l'interface utilisateur, son système d'ancrage puissant, sa gestion des menus, sa barre d'état intégrée et sa facilité de gestion de l'état de l'application en font un outil essentiel pour les développeurs qui souhaitent construire des interfaces utilisateur interactives et flexibles.

3. Les composants de QMainWindow

QMainWindow PyQt5 Python beginner

Les composants de QMainWindow dans PyQt5 sont les éléments qui forment l'interface utilisateur graphique (GUI) principale d'une application. Ces composants sont hébergés et gérés par la fenêtre principale (QMainWindow) et jouent un rôle essentiel dans la création d'une interface utilisateur riche et fonctionnelle. Voici les composants clés de QMainWindow :

  1. Central Widget : Le widget central occupe l'espace principal de la fenêtre QMainWindow. C'est ici que le contenu principal de l'application est affiché, comme des formulaires, des graphiques, des listes, etc. Les développeurs peuvent personnaliser le widget central en y ajoutant des widgets et des dispositions (layouts) adaptés à leurs besoins.
  2. Menu Bar : QMainWindow prend en charge la gestion des menus, qui fournissent un moyen structuré de présenter les différentes fonctionnalités de l'application à l'utilisateur. Les menus peuvent contenir des actions, des sous-menus, des raccourcis clavier, et permettent aux utilisateurs d'accéder rapidement aux fonctionnalités de l'application.
  3. Toolbars (Barres d'outils) : Les barres d'outils sont des groupes de boutons et d'actions généralement disposés en haut de la fenêtre principale. Ils fournissent un accès rapide à certaines fonctionnalités fréquemment utilisées de l'application. Les développeurs peuvent personnaliser les barres d'outils en y ajoutant des icônes, des boutons et des actions selon les besoins.
  4. Status Bar (Barre d'état) : La barre d'état située en bas de la fenêtre QMainWindow est un espace réservé pour afficher des informations ou des messages à l'utilisateur. Elle est utilisée pour afficher des messages de statut, des informations contextuelles, des conseils ou des indicateurs de progression.
  5. Dock Widgets (Widgets ancrables) : QMainWindow prend en charge le système d'ancrage (docking system) qui permet à certains widgets d'être ancrés à différents côtés de la fenêtre principale ou de flotter comme des fenêtres indépendantes. Cela offre aux utilisateurs la flexibilité de personnaliser l'agencement de l'interface selon leurs préférences.




4. Syntaxe et usage de QMainWindow

4.1 Syntaxe

Afin de pouvoir utiliser et créer des applications graphiques basées sur la classe QMainWindow, il faut préalablement l'importer et y instancier:

4.2 Exemple simple d'usage de QMainWindow

Exemple (sans utiliser la POO)

First QMainWindow PyQt5 for beginners

4.3 Exemple de QMainWindo en adoptant l'approche objet

Exemple ( QMainWindow selon l'approche objet)

4.4 Exemple de QMainWindow avec la barre de menu

Dans cet exemple:

  1. Nous créons une QMainWindow: personnalisée appelée MainWindow.
  2. Nous ajoutons ensuite un widget central: une fenêtre QWidget() pour afficher le contenu principal de l'application.
  3. Nous créons quatre actions de menu : "Nouveau", "Ouvrir", "Enregistrer" et "Quitter". Chaque action est associée à une fonction de rappel qui sera exécutée lorsque l'action du menu sera déclenchée.
  4. Nous créons ensuite une barre de menu: en utilisant la méthode menuBar() de la QMainWindow.
  5. Nous ajoutons un menu "Fichier": à la barre de menu, puis nous y ajoutons les actions "Nouveau", "Ouvrir", "Enregistrer" et "Quitter".

Lorsque vous exécutez l'application, vous verrez une barre de menu en haut de la fenêtre contenant le menu "Fichier" avec les actions associées. Lorsque vous cliquez sur chaque action, la fonction de rappel correspondante sera appelée, et un message sera affiché dans la console pour indiquer que l'action a été déclenchée.

Fenêtre QMainWindow avec barre de menu

5. Méthodes et attributs associés à un objet QMainWindow

Voici une liste des méthodes et des attributs les plus couramment utilisés associés à un objet QMainWindow en PyQt5 :

5.1 Méthodes

  1. __init__(self, parent=None): Le constructeur de la classe QMainWindow.
  2. setCentralWidget(self, widget): Définit le widget central de la fenêtre principale.
  3. centralWidget(self): Renvoie le widget central actuellement défini.
  4. menuBar(self): Renvoie la barre de menu (QMenuBar) de la fenêtre principale.
  5. statusBar(self): Renvoie la barre d'état (QStatusBar) de la fenêtre principale.
  6. addToolBar(self, toolbar): Ajoute une barre d'outils (QToolBar) à la fenêtre principale.
  7. addDockWidget(self, area, dockwidget): Ajoute un widget ancrable (QDockWidget) à la fenêtre principale dans la zone spécifiée.
  8. setMenuBar(self, menubar): Définit la barre de menu de la fenêtre principale.
  9. setStatusBar(self, statusbar): Définit la barre d'état de la fenêtre principale.
  10. setWindowTitle(self, title): Définit le titre de la fenêtre principale.
  11. show(): Affiche la fenêtre principale à l'écran.
  12. close(): Ferme la fenêtre principale.
  13. resize(self, width, height): Redimensionne la fenêtre principale à la taille spécifiée.




5.2 Les attributs

  1. windowTitle: Contient le titre de la fenêtre principale.
  2. geometry: Contient la géométrie de la fenêtre principale (position et taille).
  3. centralWidget: Référence vers le widget central de la fenêtre principale.
  4. menuBar: Référence vers la barre de menu de la fenêtre principale (QMenuBar).
  5. statusBar: Référence vers la barre d'état de la fenêtre principale (QStatusBar).
  6. toolBars(): Renvoie une liste des barres d'outils (QToolBar) ajoutées à la fenêtre principale.
  7. dockWidgets(): Renvoie une liste des widgets ancrables (QDockWidget) ajoutés à la fenêtre principale.
  8. menuWidget(): Référence vers le widget menu de la fenêtre principale.

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply