Wie Klicks in einem Gtk.TreeView zu fangen?
-
21-08-2019 - |
Frage
Ich versuche, einen Doppelklick auf Ereignis in einem TreeView der leeren Bereich zu fangen einen neuen Knoten zu erstellen. Leider Standardmethode funktioniert nicht. Ich habe versucht, ButtonPressEvent sowohl TreeView Befestigung und der ScrolledWindow in denen T. V. gehostet wird. Ich erhalte keine Rückrufe meiner Funktion.
Wie kann ich dieses Problem lösen?
Lösung
Sie müssen die GLib.ConnectBeforeAttribute auf Ihrem Handler verwenden TreeView.ButtonPressEvent zu handhaben, da sonst das Widget das Ereignis behandelt intern und Handler wird nicht aufgerufen werden.
Beispiel:
[GLib.ConnectBefore]
void OnTreeViewButtonPressEvent(object sender, ButtonPressEventArgs e)
{
if (e.Type == Gdk.EventType.TwoButtonPress)
{
// double click
}
}
Andere Tipps
http://old.nabble.com/CellRenderer- editierbare-on-Doppelklick-td24975510.html
self.treeview.connect("button-press-event",self.cell_clicked)
def cell_clicked(self, widget, event):
if event.button == 1 and event.type == gtk.gdk.BUTTON_PRESS:
print "Double clicked on cell"
Ich denke, das Treeview einen eigenen Fenster hat.
Holen Sie sich das Fenster-Handle, und dann Sendmessage (treeview-> GetSafeHwnd (), TVI_ROOT, tvichildren)
Die obige Nachrichtens ist für Ihr Verständnis nur.