[pyar] [pygtk] Treeviews, button_press_event y .get_selection().get_selected()
N Cis
n.cis_92 en hotmail.com
Jue Dic 2 20:56:50 ART 2010
Hola, estoy intentado hacer un menu que aparezca al hacer segundo click en un elemento de un treeview. El menu que se genera tiene que hacer diversas cosas dependiendo de la fila que fue seleccionada. El tema es que no se por que tiene como un lag, y me da la informacion de la fila que estaba antes seleccionada.
Paso la parte del codigo (es una app media complicadita, en la fue tomando ideas de emesene, por si alguien le interesa: http://github.com/NickCis/Okeykoclient):
En una parte se crea el TreeView:
mensajeslist = gtk.TreeView(self.inbox_store)
mensajeslist.set_headers_visible(False)
mensajeslist.connect("row-activated", self.mostrarmensaje)
mensajeslist.connect("button_press_event", self.popUpMenMenu, 'in')
Y las funciones a las que se hace refencia son las siguientes:
def popUpMenMenu(self, widget, event, box):
if event.type == gtk.gdk.BUTTON_PRESS: # Single click
if event.button == 3: # Right Click - Show popup
print "Right Click"
#self.popMenuBuilder(widget, box)
menu = self.popMenuBuilder(widget, box)
menu.popup(None, None, None, event.button, event.time)
#self.menu.popup(None, None, None, event.button, event.time)
def popMenuBuilder(self, treeView, box):
listStore, lIter = treeView.get_selection().get_selected() #Croe qe aca esta el problema no me devuelve la info de la
selec = listStore.get(lIter, 2, 5) #fila donde se dio el segundo click, por que lo tendria que reemplazar?
menu = gtk.Menu()
menuItemRes = gtk.MenuItem("Responder")
menuItemRes.connect('activate', self.popMenuCallb, 'res', selec)
menuItemFav = gtk.MenuItem("Favoritos")
menuItemFav.connect('activate', self.popMenuCallb, 'fav', selec)
menuItemAg = gtk.MenuItem("Agegar a Agenda")
menuItemAg.connect('activate', self.popMenuCallb, 'ag', selec)
menuItemBor = gtk.ImageMenuItem( gtk.STOCK_DELETE )
if box == 'in':
menuItemBor.connect('activate', self.popMenuCallb, 'borIn', selec)
elif box == 'out':
menuItemBor.connect('activate', self.popMenuCallb, 'borOut', selec)
menu.append(menuItemRes)
menu.append(menuItemFav)
menu.append(menuItemAg)
menu.append(menuItemBor)
menu.show_all()
return menu
def popMenuCallb(self, menuitem, action, args):
if action == "res":
self.redactar_ventana(None, args[0])
elif action == "fav":
pass
elif action == "ag":
pass
elif action == "borIn":
self.__Okeyko.inbox_bor(args[1])
elif action == "borOut":
pass
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20101202/a65ad3b8/attachment.html>
More information about the pyar
mailing list