PyGTK: Doppelklick auf Zellrenderer
-
26-09-2019 - |
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!
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.