Python 3 - 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. Option et 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 -

# !/usr/bin/python3
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()

Résultat

Lorsque le code ci-dessus est exécuté, il produit le résultat suivant -