FAQ PythonConsultez toutes les FAQ

Nombre d'auteurs : 11, nombre de questions : 188, dernière mise à jour : 2 septembre 2018 

 
OuvrirSommaireGUITkinter / Tix / PmwTkinterMenu

le widget Menu peut être utiliser pour créer une barre de menu dans une fenêtre. Pour cela, vous devez tout d'abord définir un premier Menu de parent une fenêtre ( mainmenu = Tk.Menu(root) ) puis associé ce menu à la fenêtre ( root.config(menu = mainmenu) ).

Pour ajouter des menus à la barre de menu, vous créerez de nouveaux Menu ayant pour parent le premier menu crée ( menuExample = Tk.Menu(mainmenu) ) et sera insérée à la barre par la fonction add_cascade ( mainmenu.add_cascade(label = "Exemple", menu=menuExample) ). La fonction add_cascade(**options) peut recevoir une liste de paramètres où les principaux sont label pour le titre du menu fils et menu représentant l'indentifiant du menu fils en question.

Pour ajouter des options à un menu fils, vous utilisez la fonction add_command(**options) qui peut recevoir une liste de paramètres et où les principaux sont label pour le titre de l'option et command qui représente la fonction associée au clic sur l'option.

Exemple de création d'un Menu
Sélectionnez

# -*- coding: cp1252 -*-
import Tkinter as Tk
import tkMessageBox

root = Tk.Tk()   ## Fenêtre principale

def Affiche(): tkMessageBox.showinfo("Exemple d'un Menu Tkinter")
def About(): tkMessageBox.showinfo("A propos", "Version 1.0")
    
mainmenu = Tk.Menu(root)  ## Barre de menu
menuExample = Tk.Menu(mainmenu)  ## Menu fils menuExample
menuExample.add_command(label="Affiche", command=Affiche)  ## Ajout d'une option au menu fils menuFile
menuExample.add_command(label="Quitter", command=root.quit)

menuHelp = Tk.Menu(mainmenu) ## Menu Fils
menuHelp.add_command(label="A propos", command=About)

mainmenu.add_cascade(label = "Exemple", menu=menuExample)
mainmenu.add_cascade(label = "Aide", menu=menuHelp)

root.config(menu = mainmenu)

root.mainloop()
Image non disponible
Créé le 29 août 2006  par Guigui_

La méthode add_separator() permet de rajouter une ligne de séparation dans un menu.

 
Sélectionnez

# -*- coding: cp1252 -*-
import Tkinter as Tk
import tkMessageBox

root = Tk.Tk() 

def Affiche(): tkMessageBox.showinfo("Exemple d'un Menu Tkinter")
def About(): tkMessageBox.showinfo("A propos", "Version 1.0")
    
mainmenu = Tk.Menu(root)  
menuExample = Tk.Menu(mainmenu)
menuExample.add_command(label="Affiche", command=Affiche)  
menuExample.add_separator() ## Ajout d'une ligne séparatrice
menuExample.add_command(label="Quitter", command=root.quit)

mainmenu.add_cascade(label = "Exemple", menu = menuExample)
root.config(menu = mainmenu)

root.mainloop()
Image non disponible
Créé le 29 août 2006  par THE_VIP

Le widget Menu admet un paramètre booléen tearoff qui indique si le menu en question peut être détaché de son parent ou non; par défaut, tearoff = 1 et le menu est détachable. Un menu détachable est caractérisé par la présence d'une ligne pointillée en son début.

 
Sélectionnez

import Tkinter as Tk
 
root = Tk.Tk()
 
mainmenu = Tk.Menu(root)
menunondetachable = Tk.Menu(mainmenu, tearoff = 0)
menudetachable = Tk.Menu(mainmenu, tearoff = 1) 
mainmenu.add_cascade(label="Menu1", menu = menunondetachable)
mainmenu.add_cascade(label="Menu2", menu = menudetachable)
menunondetachable.add_command(label="Quit", command = fenetre.quit)
menudetachable.add_command(label="Quit", command = fenetre.quit)
 
root.config(menu = mainmenu)
root.mainloop ()
Créé le 2 janvier 2007  par THE_VIP
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005-2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.