PyGtk: Menus emergentes con click derecho del ratón

Querer dar facilidad al usuario, muchas veces se convierte en dar calenturas de cabeza al programador. Hoy he pasado bastante tiempo hasta que he conseguido poder realizar algo tan aparentemente sencillo como un menú emergente con un click derecho de ratón.

Para comenzar, he estado buscando como capturar el evento derecho del ratón, en mi caso dentro de un gtk.TreeView (widget al que hay que dedicarle tiempo aparte…) . Al caso, es que me he vuelto loco, no encontraba la señal “right-clicked” por decirlo de algún modo. Cuando he conseguido encontrar algo, ha sido una máscara gtk.gdk.BUTTON2_MASK, no tenía que hacer con ella. Dando vueltas he encontrado la señal “button-press-event”, que se emite cuando se pulsa cualquier botón del ratón. Así, que he añadido el evento y conectado la señal, mediante:

self.treeview.add_events(gtk.gdk.BUTTON2_MASK)
self.treeview.connect("button-press-event", self.rightClick)

Por otro lado, si se quiere crear un menú y añadirle elementos (en este caso con una imagen), se debe añadir un gtk.ImageMenuItem y conectarle la señal quedando algo así:


self.menu = gtk.Menu()
menu_items = gtk.ImageMenuItem(gtk.STOCK_ADD)
self.menu.append(menu_items)
menu_items.connect("activate", self.menuitem_response)
menu_items.show()

Obtenido: Inmersión en los widget TreeView y Menu y en los eventos de ratón.

Objetivo: Utilización de los mismo en la interfaz de creación de exámenes.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s