Python - Menú Tkinter

El objetivo de este widget es permitirnos crear todo tipo de menús que puedan ser utilizados por nuestras aplicaciones. La funcionalidad principal proporciona formas de crear tres tipos de menú: emergente, de nivel superior y desplegable.

También es posible utilizar otros widgets extendidos para implementar nuevos tipos de menús, como el widget OptionMenu , que implementa un tipo especial que genera una lista emergente de elementos dentro de una selección.

Sintaxis

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

w = Menu ( 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. Descripción
1

activebackground

El color de fondo que aparecerá en una opción cuando esté debajo del mouse.

2

activeborderwidth

Especifica el ancho de un borde dibujado alrededor de una opción cuando está debajo del mouse. El valor predeterminado es 1 píxel.

3

activeforeground

El color de primer plano que aparecerá en una opción cuando esté debajo del mouse.

4

bg

El color de fondo para las opciones que no se encuentran debajo del mouse.

5

bd

El ancho del borde alrededor de todas las opciones. El valor predeterminado es 1.

6

cursor

El cursor que aparece cuando el mouse está sobre las opciones, pero solo cuando se ha arrancado el menú.

7

disabledforeground

El color del texto de los elementos cuyo estado es DISABLED.

8

font

La fuente predeterminada para opciones de texto.

9

fg

El color de primer plano que se usa para las opciones que no están debajo del mouse

10

postcommand

Puede establecer esta opción en un procedimiento, y ese procedimiento se llamará cada vez que alguien abra este menú.

11

relief

El efecto 3-D predeterminado para los menús es relieve = LEVANTADO.

12

image

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

13

selectcolor

Especifica el color que se muestra en los botones de verificación y los botones de radio cuando se seleccionan.

14

tearoff

Normalmente, un menú se puede quitar, la primera posición (posición 0) en la lista de opciones está ocupada por el elemento de corte, y las opciones adicionales se agregan a partir de la posición 1. Si establece el corte = 0, el no tendrá una función de corte, y se agregarán opciones a partir de la posición 0.

15

title

Normalmente, el título de una ventana de menú desprendible será el mismo que el texto del botón de menú o la cascada que conduce a este menú. Si desea cambiar el título de esa ventana, establezca la opción de título en esa cadena.

Métodos

Estos métodos están disponibles en objetos de menú:

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

add_command (options)

Agrega un elemento de menú al menú.

2

add_radiobutton( options )

Crea un elemento de menú de botón de opción.

3

add_checkbutton( options )

Crea un elemento de menú de botón de verificación.

4

add_cascade(options)

Crea un nuevo menú jerárquico asociando un menú dado a un menú principal

5

add_separator()

Agrega una línea de separación al menú.

6

add( type, options )

Agrega un tipo específico de elemento de menú al menú.

7

delete( startindex [, endindex ])

Elimina los elementos del menú que van desde startindex hasta endindex.

8

entryconfig( index, options )

Le permite modificar un elemento del menú, que está identificado por el índice, y cambiar sus opciones.

9

index(item)

Devuelve el número de índice de la etiqueta de elemento de menú dada.

10

insert_separator ( index )

Inserte un nuevo separador en la posición especificada por index.

11

invoke ( index )

Llama a la devolución de llamada del comando asociada con la elección en el índice de posición. Si es un botón de verificación, su estado cambia entre establecido y desactivado; si es un botón de radio, se establece esa opción.

12

type ( index )

Devuelve el tipo de elección especificado por el índice: "cascada", "botón de verificación", "comando", "botón de radio", "separador" o "corte".

Ejemplo

Pruebe el siguiente ejemplo usted mismo:

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()

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