Python 3 - Menu Tkinter
L'obiettivo di questo widget è quello di permetterci di creare tutti i tipi di menu che possono essere utilizzati dalle nostre applicazioni. La funzionalità principale fornisce modi per creare tre tipi di menu: pop-up, toplevel e pull-down.
È anche possibile utilizzare altri widget estesi per implementare nuovi tipi di menu, come il widget OptionMenu , che implementa un tipo speciale che genera un elenco a comparsa di elementi all'interno di una selezione.
Sintassi
Ecco la semplice sintassi per creare questo widget:
w = Menu ( master, option, ... )
Parametri
master - Questo rappresenta la finestra principale.
options- Ecco l'elenco delle opzioni più comunemente utilizzate per questo widget. Queste opzioni possono essere utilizzate come coppie chiave-valore separate da virgole.
Sr.No. | Opzione e descrizione |
---|---|
1 | activebackground Il colore di sfondo che apparirà su una scelta quando è sotto il mouse. |
2 | activeborderwidth Specifica la larghezza di un bordo disegnato intorno a una scelta quando è sotto il mouse. L'impostazione predefinita è 1 pixel. |
3 | activeforeground Il colore di primo piano che apparirà su una scelta quando è sotto il mouse. |
4 | bg Il colore di sfondo per le scelte non sotto il mouse. |
5 | bd La larghezza del bordo attorno a tutte le scelte. L'impostazione predefinita è 1. |
6 | cursor Il cursore che appare quando il mouse si trova sulle scelte, ma solo quando il menu è stato strappato. |
7 | disabledforeground Il colore del testo per gli elementi il cui stato è DISABILITATO. |
8 | font Il carattere predefinito per le scelte testuali. |
9 | fg Il colore di primo piano utilizzato per le scelte non sotto il mouse. |
10 | postcommand È possibile impostare questa opzione su una procedura e quella procedura verrà chiamata ogni volta che qualcuno apre questo menu. |
11 | relief L'effetto 3-D predefinito per i menu è rilievo = AUMENTATO. |
12 | image Per visualizzare un'immagine in questo menu |
13 | selectcolor Specifica il colore visualizzato nei pulsanti di controllo e nei pulsanti radio quando sono selezionati. |
14 | tearoff Normalmente, un menu può essere strappato, la prima posizione (posizione 0) nell'elenco delle scelte è occupata dall'elemento strappo e le scelte aggiuntive vengono aggiunte a partire dalla posizione 1. Se si imposta strappo = 0, il menu non avrà una funzione di strappo e le scelte verranno aggiunte a partire dalla posizione 0. |
15 | title Normalmente, il titolo di una finestra di menu a strappo sarà lo stesso del testo del pulsante del menu o della cascata che conduce a questo menu. Se vuoi cambiare il titolo di quella finestra, imposta l'opzione del titolo su quella stringa. |
Metodi
Questi metodi sono disponibili sugli oggetti Menu:
Sr.No. | Opzione e descrizione |
---|---|
1 | add_command (options) Aggiunge una voce di menu al menu. |
2 | add_radiobutton( options ) Crea una voce di menu del pulsante di opzione. |
3 | add_checkbutton( options ) Crea una voce di menu del pulsante di controllo. |
4 | add_cascade(options) Crea un nuovo menu gerarchico associando un determinato menu a un menu principale |
5 | add_separator() Aggiunge una linea di separazione al menu. |
6 | add( type, options ) Aggiunge un tipo specifico di voce di menu al menu. |
7 | delete( startindex [, endindex ]) Elimina le voci di menu che vanno da startindex a endindex. |
8 | entryconfig( index, options ) Consente di modificare una voce di menu, identificata dall'indice, e di cambiarne le opzioni. |
9 | index(item) Restituisce il numero di indice dell'etichetta della voce di menu specificata. |
10 | insert_separator ( index ) Inserisci un nuovo separatore nella posizione specificata da index. |
11 | invoke ( index ) Chiama il callback del comando associato alla scelta all'indice di posizione. Se è un pulsante di spunta, il suo stato passa da impostato a deselezionato; se un radiobutton, quella scelta è impostata. |
12 | tipo (indice) Restituisce il tipo di scelta specificato da index: "cascade", "checkbutton", "command", "radiobutton", "separator" o "tearoff". |
Esempio
Prova tu stesso il seguente esempio:
# !/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()
Risultato
Quando il codice sopra viene eseguito, produce il seguente risultato: