Créer un menu PyQt5 avec la classe QMenuBar

1. Introduction aux menus PyQt5

  • Les menus sont une partie importante de l'interface graphique utilisateur d'une application. Les menus permettent aux utilisateurs d'accéder facilement à différentes fonctionnalités et options. PyQt5 fournit une classe QMenuBar pour créer des barres de menus dans une application PyQt5.
  • Pour créer une barre de menu, il est nécessaire d'instancier la classe QMenuBar et de l'ajouter à la fenêtre principale de l'application PyQt5. La barre de menu peut contenir plusieurs menus, chacun ayant une liste d'actions. Les actions sont des fonctions qui sont exécutées lorsque l'utilisateur clique sur un élément du menu.
  • Dans ce tutoriel, nous allons apprendre à créer et personnaliser des barres de menus dans PyQt5. Nous verrons comment ajouter des menus, des actions et des sous-menus, et comment les connecter à des fonctions. Nous aborderons également des sujets tels que l'utilisation de boîtes de dialogue pour ouvrir et enregistrer des fichiers, la personnalisation des menus et des actions, l'utilisation de raccourcis clavier, la création de menus contextuels et l'utilisation de la barre d'outils.

2. Menu simple avec QMenuBar PyQt5

2.1 Créer un menu avec la classe QMenuBar

Pour créer un menu, la bibliothèque PyQt5 possède une classe nommée QMenuBar qui permet de créer une barre de menu. En faisant une instanciation sur la classe QMenuBar, on crée un objet menuBar avec les méthodes :

  1. addMenu() : permettant d'ajouter un menu comme File , Edit, Option...
  2. addAction(): permettant d'ajouter des commandes aux éléments de menu comme : File->Open , File->Save , File->Save As, File->Exit,...
  3. addSeparator() : permettant d'ajouter un séparateur entre les éléments du menu.

A cet effet créer un fichier Python nommé simplemenu.py et y insérer le code suivant:

Exemple (simplemenu.py)

 

2.2 Ajouter une action au menu

Nous pouvons également ajouter une action de commande au menu pyqt afin de pouvoir assigner des actions au click, par exemple lorsque nous cliquons sur Fichier->Ouvrir, une nouvelle fenêtre apparaît, lorsque nous cliquons sur Fichier->Quitter nous quittons la fenêtre...Nous devons alors ajouter des fonctions qui réalisent cela:

Exemple (action: File->Nouveau et File->Exit)

3. QMenuBar selon l'approche objet PyQt5

Afin d'organiser vos projets Python et éviter la répetition du code, vous devez vous appuyer sur l'approche objet. A cet effet vous devez écrire un code propre sous forme d'une classe Python:




4. Ajouter une action à un élément de menu à l'aide de la classe QAction

Nous allons maintenant voir une autre méthode pour ajouter une action à un élément de menu en utilisant la classe QAction. À cette fin, les étapes suivantes doivent être suivies :

  1. nous créons l'action : en utilisant la classe QAction
  2. Nous ajoutons l'action : au menu en utilisant la méthode addAction()
  3. Nous connectons l'action : à la méthode qui exécute l'action à l'aide de la méthode trigger.connect()

Code complet: créons maintenant un fichier nommé 'exemple.py' et y insérons le code suivant:

Exemple 1 (menu File -> exit)

Exemple 2 (menu File -> New)

5. Raccourcie clavier

Afin de facilier l'usage de notre application, nous pouvons créer des raccourcies clavier. Nous allons traiter dans ce paragraphe le rccourcie clavier Crtl+Q pour exécuter l'action "Quitter". A cet effet nous devons appliquer la méthode setShortcut() à l'objet exitAction:

Exemple complet

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply