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?

War es hilfreich?

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.

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