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: