PyGTK: Haz doble clic en CellRenderer
-
26-09-2019 - |
Pregunta
En mi aplicación PyGTK que actualmente utilizan 'editable' para hacer que las células editable. Pero desde mi contenido de la celda a veces son muy, muy grande quiero preguntar al usuario por los cambios en una nueva ventana cuando doubleclicks en una célula. Pero no podía encontrar la manera de gancho en hace doble clic en CellRenderers específicos - Yo no quiero editar toda la fila y yo también no quiero establecer esta llamada de retorno para toda la fila, sólo para columnas en las que un contenido demasiado larga puede ocurrir. ¿Cómo puedo hacer esto con CellRendererText () o algo similar.
Mi Actualmente código de generación de célula es:
cols[i] = gtk.TreeViewColumn(coltitle)
cells[i] = gtk.CellRendererText()
cols[i].pack_start(cells[i])
cols[i].add_attribute(cells[i], 'text', i)
cols[i].set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
cols[i].set_fixed_width(100)
cells[i].set_property('editable', True)
cells[i].connect('edited', self.edited, (i, ls))
cols[i].set_resizable(True)
mytreeview.append_column(cols[i])
Gracias!
Solución
Creo que esto no es posible directamente. Sin embargo, se puede conectar a button-press-event
en el gtk.TreeView
. Entonces, cuando event.type
es igual a gtk.gdk._2BUTTON_PRESS
, x
convertido y y
a la ubicación del árbol usando gtk.TreeView.get_path_at_pos()
. Esto devolverá tanto un camino de árbol indicando el objeto de fila y gtk.TreeViewColumn
en que se hizo el clic.