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: