Tkinter Menubutton¶
Permite agregar un botón que despliega un menú parecido a las pestañas que se crean con Tkinter Menu.
Ejemplo¶
# -*- coding: utf-8 -*-
"""
Ejemplo de ventana básico con menubutton
"""
#Importamos las librerías necesarias
import tkinter as tk
def fun1(): #Crea una nueva ventana
m = tk.Tk()
Lb = tk.Label(m, text = "Hello Option 1 clicked")
Lb.pack()
m.mainloop()
#Muestra un mensaje en la ventana principal
def fun2():
label = tk.Label(ventana, text = "Hello Option 2 clicked")
label.pack()
ventana = tk.Tk() #Ventana principal
ventana.geometry("200x200")
#Se crea el menubutton
mb = tk.Menubutton(ventana , text = "Menu", relief = "raised" )
mb.pack()
#Se crea el menú que va conectado al menubutton
mb.menu = tk.Menu(mb)
mb["menu"] = mb.menu
#Se agregan los comandos directamente
#Es posible agregar otros widgets como radiobuttons o checkbutton al menú
mb.menu.add_command(label='New Window',command = fun1)
mb.menu.add_command(label='Add Text',command = fun2)
mb.menu.add_command(label='Salir...', command = ventana.destroy)
ventana.mainloop()
El resultado es el siguiente:
Al seleccionar el botón, se despliega un menú como se observa en la siguiente imagen. Cada una de las tres opciones está conectada a una función; New Window
está conectada a fun1
, Add Text
a fun2
y Salir...
a ventana.detroy
que es un método predeterminado para cerrar la ventana principal.
Al principio se definen la tk.Tk
y las funciones. Luego, se define el menubutton indicando la ventana que lo va a contener, el texto que va a mostrar y relief
que modifica el aspecto o relieve del botón. Después, es necesario crear un menú (ver Tkinter Menu) para desplegar desde el menubutton. Para agregar las opciones se usa mb.menu.add_command
al igual que con los Tkinter Menu.
Aquí para ver más opciones de Menubutton.