Menú emergente en Tkinter

Tkinter es el paquete GUI (interfaz gráfica de usuario) estándar de Python. Es uno de los paquetes más utilizados para aplicaciones GUI que viene con Python.

Nota: Para obtener más información, consulte Python GUI – tkinter

Widget de menú

Los menús son una parte importante de cualquier GUI. Un uso común de los menús es brindar acceso conveniente a varias operaciones, como guardar o abrir un archivo, salir de un programa o manipular datos. Los menús de nivel superior se muestran justo debajo de la barra de título de la raíz o cualquier otra ventana de nivel superior.

Sintaxis:

menu = Menu(master, **options)

Nota: Para obtener más información, consulte Python | Widget de menú en Tkinter

Menú emergente

Los menús emergentes son menús contextuales que aparecen en la interacción del usuario. Este menú se puede mostrar en cualquier parte de la ventana del cliente. a continuación se muestra el código de Python para crear un menú emergente utilizando la biblioteca Tkinter.

#creating popup menu in tkinter
import tkinter
   
class A:
    #creates parent window
    def __init__(self):
               
        self.root = tkinter.Tk()
        self.root.geometry('500x500')
   
        self.frame1 = tkinter.Label(self.root,
                                    width = 400,
                                    height = 400,
                                    bg = '#AAAAAA')
        self.frame1.pack()
   
    #create menu
    def popup(self):
        self.popup_menu = tkinter.Menu(self.root,
                                       tearoff = 0)
          
        self.popup_menu.add_command(label = "say hi",
                                    command = lambda:self.hey("hi"))
          
        self.popup_menu.add_command(label = "say hello",
                                    command = lambda:self.hey("hello"))
        self.popup_menu.add_separator()
        self.popup_menu.add_command(label = "say bye",
                                    command = lambda:self.hey("bye"))
   
    #display menu on right click
    def do_popup(self,event):
        try:
            self.popup_menu.tk_popup(event.x_root,
                                     event.y_root)
        finally:
            self.popup_menu.grab_release()
   
    def hey(self,s):
        self.frame1.configure(text = s)
          
    def run(self):
        self.popup()
        self.root.bind("<Button-3>",self.do_popup)
        tkinter.mainloop()
  
a = A()
a.run()

Producción:

El menú emergente en el código anterior aparece al hacer clic con el botón derecho.

Funciones

  • Menú (raíz): crea el menú.
  • add_command(etiqueta, comando): agrega los comandos en el menú, el argumento del comando llama a la función hey() cuando se hace clic en esa opción.
  • add_separator(): agrega un separador.
  • tk_popup(x, y): publica el menú en la posición dada como argumentos
  • grab_release(): libera el evento grab
  • bind(key, event): enlaza el evento del ratón.

Publicación traducida automáticamente

Artículo escrito por maitrayee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *