Frage

In meiner PyGTK Anwendung verwende ich zur Zeit ‚editierbar‘ an Zellen bearbeitbar zu machen. Aber da manchmal meine Zelleninhalte wirklich wirklich groß sind, möchte ich den Benutzer für Änderungen in einem neuen Fenster stellen, wenn er auf einer Zelle Ein Doppelklick. Aber ich kann nicht herausfinden, wie auf einen Doppelklick auf spezifische cellrenderers Haken - ich will nicht die ganze Zeile zu bearbeiten, und ich will auch nicht für die ganze Zeile dieses Rückruf setzen, nur für Spalten, in denen zu langen Inhalt kann auftreten. Wie kann ich dies tun, mit CellRendererText () oder etwas ähnlichem.

Meine momentan zellErzeugungsCode lautet:

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

Danke!

War es hilfreich?

Lösung

Ich glaube, das direkt nicht möglich ist. Sie können jedoch zu button-press-event auf dem gtk.TreeView verbinden. Wenn dann event.type gleich zu gtk.gdk._2BUTTON_PRESS, convert x und y zu Baum Standort gtk.TreeView.get_path_at_pos() verwenden. Dies wird sowohl zurückgeben Baumpfad die Zeile und gtk.TreeViewColumn Objekt angibt, auf das der Klick gemacht wurde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top