Python 3 - Tkinter Menubutton
Un menubutton è la parte di un menu a discesa che rimane sullo schermo tutto il tempo. Ogni pulsante del menu è associato a un widget Menu che può visualizzare le scelte per quel pulsante del menu quando l'utente fa clic su di esso.
Sintassi
Ecco la semplice sintassi per creare questo widget:
w = Menubutton ( 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 quando il mouse si trova sopra il pulsante del menu. |
2 | activeforeground Il colore di primo piano quando il mouse si trova sopra il pulsante del menu. |
3 | anchor Questa opzione controlla dove è posizionato il testo se il widget ha più spazio di quello necessario al testo. L'impostazione predefinita è anchor = CENTER, che centra il testo. |
4 | bg Il colore di sfondo normale visualizzato dietro l'etichetta e l'indicatore. |
5 | bitmap Per visualizzare una bitmap sul pulsante del menu, impostare questa opzione su un nome bitmap. |
6 | bd La dimensione del bordo attorno all'indicatore. L'impostazione predefinita è 2 pixel. |
7 | cursor Il cursore che appare quando il mouse si trova su questo pulsante del menu. |
8 | direction Impostare la direzione = SINISTRA per visualizzare il menu a sinistra del pulsante; utilizzare la direzione = DESTRA per visualizzare il menu a destra del pulsante; oppure usa direction = 'above' per posizionare il menu sopra il pulsante. |
9 | disabledforeground Il colore di primo piano mostrato su questo pulsante del menu quando è disabilitato. |
10 | fg Il colore di primo piano quando il mouse non si trova sopra il pulsante del menu. |
11 | height L'altezza del pulsante del menu in righe di testo (non pixel!). L'impostazione predefinita è adattare la dimensione del pulsante del menu al suo contenuto. |
12 | highlightcolor Colore mostrato nell'evidenziazione dello stato attivo quando il widget è attivo. |
13 | image Per visualizzare un'immagine su questo pulsante del menu, |
14 | justify Questa opzione controlla dove si trova il testo quando il testo non riempie il pulsante del menu: usa justify = LEFT per giustificare il testo a sinistra (questa è l'impostazione predefinita); utilizzare justify = CENTER per centrarlo, o justify = RIGHT per giustificare a destra. |
15 | menu Per associare il pulsante del menu a un insieme di scelte, impostare questa opzione sull'oggetto Menu contenente quelle scelte. Quell'oggetto menu deve essere stato creato passando il menubutton associato al costruttore come primo argomento. |
16 | padx Quanto spazio lasciare a sinistra ea destra del testo del pulsante del menu. L'impostazione predefinita è 1. |
17 | pady Quanto spazio lasciare sopra e sotto il testo del pulsante del menu. L'impostazione predefinita è 1. |
18 | relief Seleziona gli effetti di ombreggiatura dei bordi tridimensionali. L'impostazione predefinita è RIALZATO. |
19 | state Normalmente, i pulsanti dei menu rispondono al mouse. Impostare state = DISABLED per disabilitare il pulsante del menu e renderlo non rispondente. |
20 | text Per visualizzare il testo sul pulsante del menu, impostare questa opzione sulla stringa contenente il testo desiderato. Le nuove righe ("\ n") all'interno della stringa causeranno interruzioni di riga. |
21 | textvariable È possibile associare una variabile di controllo della classe StringVar a questo pulsante del menu. L'impostazione di quella variabile di controllo cambierà il testo visualizzato. |
22 | underline Normalmente, nessuna sottolineatura appare sotto il testo sul pulsante del menu. Per sottolineare uno dei caratteri, impostare questa opzione sull'indice di quel carattere. |
23 | width La larghezza del widget in caratteri. L'impostazione predefinita è 20. |
24 | wraplength Normalmente, le righe non vengono mandate a capo. È possibile impostare questa opzione su un numero di caratteri e tutte le righe verranno suddivise in pezzi non più lunghi di quel numero. |
Esempio
Prova tu stesso il seguente esempio:
# !/usr/bin/python3
from tkinter import *
import tkinter
top = Tk()
mb = Menubutton ( top, text = "condiments", relief = RAISED )
mb.grid()
mb.menu = Menu ( mb, tearoff = 0 )
mb["menu"] = mb.menu
mayoVar = IntVar()
ketchVar = IntVar()
mb.menu.add_checkbutton ( label = "mayo",
variable = mayoVar )
mb.menu.add_checkbutton ( label = "ketchup",
variable = ketchVar )
mb.pack()
top.mainloop()
Risultato
Quando il codice sopra viene eseguito, produce il seguente risultato: