Python 3 - 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. | Opción y 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 utilizado para las opciones que no se encuentran 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 = ELEVADO. |
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 menú 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 se alterna entre establecido y desactivado; si es un botón de radio, se establece esa opción. |
12 | tipo (índice) 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:
# !/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()
Resultado
Cuando se ejecuta el código anterior, produce el siguiente resultado: