1. La classe Menu Tkinter
Le rôle du widget Menu est de vous permettre de créer toutes sortes de menus utilisables par vos applications. La création d'un menu Tkinter est réalisable à l'aide de la classe Menu et se déroule selon les étapes suivantes :
2. Création de la barre des menus
Avant de créer un menu, il faut au préalable créer la barre de menu. Pour ce faire, il suffit d'instancier la classe Menu:
1 2 |
menuBar = Menu (master) # master designe l'objet parent (la fenêtre principale) |
3. Création d'un menu principal
Pour créer un menu principal, il suffit d'instancier la classe Menu en prenant comme paramètre l'objet menuBar et d'appliquer la méthode add_cascade() pour ajouter des labels.
Exemple si on veut créer le menu Fichier:
1 2 3 4 |
# Création du menu principal 'Fichier' #tearoff = 0 pour menu non détachable, tearoff=1 pour menu détachable menuFichier = Menu(menuBar, tearoff = 0) menuBar.add_cascade(label="Fichier",menu=menuFichier) |
4. Création des commandes ou sous menu du menu principal
Pour ajouter une commande au menu principal, on applique la méthode add_command(). Exemple si on veut ajouter la commande Nouveau au menu Fichier:
1 |
menuFichier.add_command(label="Nouveau") |
Et si de plus on veut associer une action à la commande:
1 |
menuFichier.add_command(label="Nouveau" , command = [nom_de_la_commande]) |
5. Configuration de la barre des menus
Finalement pour configurer le menu, avec la fenêtre principale, on applique la méthode config()
1 |
master.config(menu = menuBar) |
Exemple ( menu Fichier)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# coding: utf-8 from tkinter import * master = Tk() # Création de la barre des menu menuBar = Menu(master) # Création du menu principal 'Fichier' menuFichier = Menu(menuBar, tearoff = 0) menuBar.add_cascade(label="Fichier",menu=menuFichier) # Création des sous menus : 'Nouveau', 'Ouvrir', 'Quitter' menuFichier.add_command(label="Nouveau") menuFichier.add_command(label="Ouvrir") menuFichier.add_command(label="Quitter", command=quit) # Configuration de la barre des menus master.config(menu=menuBar) master.mainloop() |
Ce qui affiche après exécution:
6. Action associée à une commande de menu
Nous allons traiter cela sur un exemple simple: la création de l'action associée à la commande: Fichier --> Nouveau. Nous devons donc ajouter l'option command:
1 |
menuFichier.add_command(label="Nouveau" , command = new) |
Nous devons ensuite créer la méthode new qui va réaliser l'action:
1 2 |
def new(): ... |
Créons un fichier python nommé à titre d'exemple: menu_fichier.py et exécutons le :
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 |
# coding: utf-8 from tkinter import * import os def new(): # on exécute le même fichier menu_fichier.py os.popen("python menu_fichier.py") master = Tk() master.geometry("300x150") # Création de la barre des menu menuBar = Menu(master) # Création du menu principal 'Fichier' menuFichier = Menu(menuBar, tearoff = 0) menuBar.add_cascade(label="Fichier",menu = menuFichier) # Création des sous menus : 'Nouveau', 'Ouvrir', 'Quitter' menuFichier.add_command(label = "Nouveau" , command = new) menuFichier.add_command(label = "Ouvrir") menuFichier.add_command(label = "Quitter", command = quit) # Configuration de la barre des menus master.config(menu = menuBar) master.mainloop() |
Remarquez bien quand on clique sur la commande: Fichier --> Nouveau , une nouvelle fenêtre est crée !
Younes Derfoufi
CRMEF OUJDA
1 thought on “Menu Tkinter En Python”