Domanda

Nella mia applicazione PyGTK Attualmente uso 'modificabile' per rendere le cellule modificabile. Ma dal momento che i miei contenuti delle celle a volte sono davvero grandi voglio chiedere all'utente per le modifiche in una nuova finestra quando ha DoubleClick su una cella. Ma non riuscivo a trovare il modo di agganciare il doppio clic sul cellRenderer specifici - Non voglio modificare l'intera riga e anche io non voglio impostare questo callback per tutta la fila, solo per le colonne in cui troppo a lungo dei contenuti può succedere. Come posso fare questo con CellRendererText () o qualcosa di simile.

Il mio momento cella codice generatrice è:

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])

Grazie!

È stato utile?

Soluzione

Credo che questo non è possibile direttamente. Tuttavia, è possibile connettersi a button-press-event sul gtk.TreeView. Poi, quando event.type equivale a gtk.gdk._2BUTTON_PRESS, convertito x e y di posizione dell'albero utilizzando gtk.TreeView.get_path_at_pos(). Ciò restituirà sia un percorso albero che indica l'oggetto riga e gtk.TreeViewColumn su cui è stato effettuato il clic.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top