Python 3 - Botón de menú Tkinter

Un botón de menú es la parte de un menú desplegable que permanece en la pantalla todo el tiempo. Cada botón de menú está asociado con un widget de menú que puede mostrar las opciones para ese botón de menú cuando el usuario hace clic en él.

Sintaxis

Aquí está la sintaxis simple para crear este widget:

w = Menubutton ( master, option, ... )

Parámetros

  • master - Esto representa la ventana principal.

  • options- Aquí está la lista de opciones más utilizadas para este widget. Estas opciones se pueden utilizar como pares clave-valor separados por comas.

No Señor. Opción y descripción
1

activebackground

El color de fondo cuando el mouse está sobre el botón de menú.

2

activeforeground

El color de primer plano cuando el mouse está sobre el botón de menú.

3

anchor

Esta opción controla dónde se coloca el texto si el widget tiene más espacio del que necesita el texto. El valor predeterminado es anchor = CENTER, que centra el texto.

4

bg

El color de fondo normal que se muestra detrás de la etiqueta y el indicador.

5

bitmap

Para mostrar un mapa de bits en el botón de menú, establezca esta opción en un nombre de mapa de bits.

6

bd

El tamaño del borde alrededor del indicador. El valor predeterminado es 2 píxeles.

7

cursor

El cursor que aparece cuando el mouse está sobre este botón de menú.

8

direction

Establecer dirección = IZQUIERDA para mostrar el menú a la izquierda del botón; use direction = RIGHT para mostrar el menú a la derecha del botón; o use direction = 'above' para colocar el menú encima del botón.

9

disabledforeground

El color de primer plano que se muestra en este botón de menú cuando está desactivado.

10

fg

El color de primer plano cuando el mouse no está sobre el botón de menú.

11

height

La altura del botón de menú en líneas de texto (¡no en píxeles!). El valor predeterminado es ajustar el tamaño del botón de menú a su contenido.

12

highlightcolor

Color que se muestra en el resaltado del foco cuando el widget tiene el foco.

13

image

Para mostrar una imagen en este botón de menú,

14

justify

Esta opción controla dónde se ubica el texto cuando el texto no llena el botón de menú: use justify = LEFT para justificar el texto a la izquierda (este es el valor predeterminado); use justify = CENTER para centrarlo, o justify = RIGHT para justificar a la derecha.

15

menu

Para asociar el botón de menú con un conjunto de opciones, establezca esta opción en el objeto Menú que contiene esas opciones. Ese objeto de menú debe haber sido creado pasando el botón de menú asociado al constructor como su primer argumento.

dieciséis

padx

Cuánto espacio dejar a la izquierda y a la derecha del texto del botón de menú. El valor predeterminado es 1.

17

pady

Cuánto espacio dejar arriba y debajo del texto del botón de menú. El valor predeterminado es 1.

18

relief

Selecciona efectos de sombreado de bordes tridimensionales. El valor predeterminado es LEVANTADO.

19

state

Normalmente, los botones de menú responden al ratón. Establezca state = DISABLED para atenuar el botón de menú y hacer que no responda.

20

text

Para mostrar texto en el botón de menú, establezca esta opción en la cadena que contiene el texto deseado. Las líneas nuevas ("\ n") dentro de la cadena provocarán saltos de línea.

21

textvariable

Puede asociar una variable de control de la clase StringVar con este botón de menú. Configurar esa variable de control cambiará el texto mostrado.

22

underline

Normalmente, no aparece ningún subrayado debajo del texto en el botón de menú. Para subrayar uno de los caracteres, establezca esta opción en el índice de ese carácter.

23

width

El ancho del widget en caracteres. El valor predeterminado es 20.

24

wraplength

Normalmente, las líneas no se ajustan. Puede establecer esta opción en varios caracteres y todas las líneas se dividirán en pedazos que no superen ese número.

Ejemplo

Pruebe el siguiente ejemplo usted mismo:

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

Resultado

Cuando se ejecuta el código anterior, produce el siguiente resultado: