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!

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top