Un menubutton est un simple bouton qui, lors d'un clic, affiche un menu déroulant. Il hérite du même comportement qu'un menu traditionnel.
creation d'un menubutton
Dans cet exemple nous allons voir:
- Comment créer un menu bouton.
- Comment définir un texte, une image pour chaque item du menu
- Comment créer un évènement réaction à un clic sur une item.
- Comment ajouter une ligne de séparation
Voici le code de notre exemple :
pack [menubutton .r -image imenu -text "menu" -compound left -menu .r.fs -relief raised] -side left menu .r.fs. -tearoff 0 .r.fs add command -label "Add new scenario" -image iadd -compound left -command Click_Add_Scenario .r.fs add command -label "Modify selected scenario" -image iedit -compound left -command Click_Edit_Scenario .r.fs add command -label "Delete selected scenario" -image idel -compound left -command Click_Delete_Scenario .r.fs add separator .r.fs add command -label "Help me..." -image ihelp -compound left .r.fs add separator .r.fs add command -label "Quit and close designer" -image iquit -compound left -command {destroy .}
Nous créons le menubutton par la commande :
menubutton .r
Pour lui attribuer une image et un texte (ici une icone MENU et un texte "MENU") , il faut lui passer deux options :
menubutton .r -image imenu -text "menu" -compound left
N'oubliez pas l'option compound qui demande d'afficher à la fois le texte et l'image.
Il nous suffit d'utiliser la même méthode qu'un menu traditionnel comme ceci :
menu .r.fs. -tearoff 0 .r.fs add command -label "Add new scenario" -image iadd -compound left
Notez au passage que l'option tearoff permet de ne pas afficher une ligne pointillée en haut du menu pour le rendre détachable.
Pour une ligne horizontale dans le menu, utilisez la commande separator comme ceci :
.r.fs add separator
Enfin, pour réagir à un clic de souris gauche, il vous suffit d'utiliser l'option -command qui déclenchera la procédure qui suit cette commande comme ceci :
-command Click_Delete_Scenario
Merci pour votre attention.