Python - Menu Tkinter
Le but de ce widget est de nous permettre de créer toutes sortes de menus utilisables par nos applications. La fonctionnalité de base fournit des moyens de créer trois types de menu: pop-up, toplevel et déroulant.
Il est également possible d'utiliser d'autres widgets étendus pour implémenter de nouveaux types de menus, tels que le widget OptionMenu , qui implémente un type spécial qui génère une liste contextuelle d'éléments dans une sélection.
Syntaxe
Voici la syntaxe simple pour créer ce widget -
w = Menu ( master, option, ... )
Paramètres
master - Ceci représente la fenêtre parente.
options- Voici la liste des options les plus couramment utilisées pour ce widget. Ces options peuvent être utilisées sous forme de paires clé-valeur séparées par des virgules.
N ° Sr. | La description |
---|---|
1 | activebackground La couleur d'arrière-plan qui apparaîtra sur un choix lorsqu'il se trouve sous la souris. |
2 | activeborderwidth Spécifie la largeur d'une bordure dessinée autour d'un choix lorsqu'il se trouve sous la souris. La valeur par défaut est de 1 pixel. |
3 | activeforeground La couleur de premier plan qui apparaîtra sur un choix lorsqu'il se trouve sous la souris. |
4 | bg La couleur d'arrière-plan pour les choix non sous la souris. |
5 | bd La largeur de la bordure autour de tous les choix. La valeur par défaut est 1. |
6 | cursor Le curseur qui apparaît lorsque la souris survole les choix, mais uniquement lorsque le menu a été arraché. |
sept | disabledforeground Couleur du texte des éléments dont l'état est DÉSACTIVÉ. |
8 | font La police par défaut pour les choix textuels. |
9 | fg La couleur de premier plan utilisée pour les choix non sous la souris. |
dix | postcommand Vous pouvez définir cette option sur une procédure, et cette procédure sera appelée à chaque fois que quelqu'un ouvrira ce menu. |
11 | relief L'effet 3D par défaut pour les menus est relief = RAISED. |
12 | image Pour afficher une image sur ce menubutton. |
13 | selectcolor Spécifie la couleur affichée dans les cases à cocher et les boutons radio lorsqu'ils sont sélectionnés. |
14 | tearoff Normalement, un menu peut être déchiré, la première position (position 0) dans la liste de choix est occupée par l'élément de déchirement, et les choix supplémentaires sont ajoutés à partir de la position 1. Si vous définissez tearoff = 0, le menu n'aura pas de fonction de déchirement et des choix seront ajoutés à partir de la position 0. |
15 | title Normalement, le titre d'une fenêtre de menu détachable sera le même que le texte du menubutton ou de la cascade menant à ce menu. Si vous souhaitez modifier le titre de cette fenêtre, définissez l'option de titre sur cette chaîne. |
Méthodes
Ces méthodes sont disponibles sur les objets Menu -
N ° Sr. | Option et description |
---|---|
1 | add_command (options) Ajoute un élément de menu au menu. |
2 | add_radiobutton( options ) Crée un élément de menu de bouton radio. |
3 | add_checkbutton( options ) Crée un élément de menu de bouton à cocher. |
4 | add_cascade(options) Crée un nouveau menu hiérarchique en associant un menu donné à un menu parent |
5 | add_separator() Ajoute une ligne de séparation au menu. |
6 | add( type, options ) Ajoute un type d'élément de menu spécifique au menu. |
sept | delete( startindex [, endindex ]) Supprime les éléments de menu allant de startindex à endindex. |
8 | entryconfig( index, options ) Vous permet de modifier un élément de menu, qui est identifié par l'index, et de changer ses options. |
9 | index(item) Renvoie le numéro d'index de l'étiquette d'élément de menu donnée. |
dix | insert_separator ( index ) Insérez un nouveau séparateur à la position spécifiée par index. |
11 | invoke ( index ) Appelle le rappel de commande associé au choix à l'index de position. S'il s'agit d'un bouton à cocher, son état est basculé entre défini et désactivé; s'il s'agit d'un bouton radio, ce choix est défini. |
12 | type ( index ) Renvoie le type du choix spécifié par index: soit "cascade", "checkbutton", "command", "radiobutton", "separator" ou "tearoff". |
Exemple
Essayez vous-même l'exemple suivant -
from Tkinter import *
def donothing():
filewin = Toplevel(root)
button = Button(filewin, text="Do nothing button")
button.pack()
root = Tk()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="New", command=donothing)
filemenu.add_command(label="Open", command=donothing)
filemenu.add_command(label="Save", command=donothing)
filemenu.add_command(label="Save as...", command=donothing)
filemenu.add_command(label="Close", command=donothing)
filemenu.add_separator()
filemenu.add_command(label="Exit", command=root.quit)
menubar.add_cascade(label="File", menu=filemenu)
editmenu = Menu(menubar, tearoff=0)
editmenu.add_command(label="Undo", command=donothing)
editmenu.add_separator()
editmenu.add_command(label="Cut", command=donothing)
editmenu.add_command(label="Copy", command=donothing)
editmenu.add_command(label="Paste", command=donothing)
editmenu.add_command(label="Delete", command=donothing)
editmenu.add_command(label="Select All", command=donothing)
menubar.add_cascade(label="Edit", menu=editmenu)
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label="Help Index", command=donothing)
helpmenu.add_command(label="About...", command=donothing)
menubar.add_cascade(label="Help", menu=helpmenu)
root.config(menu=menubar)
root.mainloop()
Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -