Question

Je suis en train d'attraper un événement double-cliquez dans une zone vide de TreeView pour créer un nouveau nœud. Malheureusement manière standard ne fonctionne pas. J'ai essayé attacher ButtonPressEvent à la fois TreeView et le ScrolledWindow dans lequel T.V. est hébergé. Je ne reçois pas de callbacks à ma fonction.

Comment puis-je résoudre ce problème?

Était-ce utile?

La solution

Vous devez utiliser le GLib.ConnectBeforeAttribute sur votre gestionnaire pour gérer TreeView.ButtonPressEvent, sinon le widget gérer l'événement en interne et votre gestionnaire ne sera pas appelé.

exemple:

[GLib.ConnectBefore]
void OnTreeViewButtonPressEvent(object sender, ButtonPressEventArgs e)
{
    if (e.Type == Gdk.EventType.TwoButtonPress)
    {
        // double click
    }
}    

Autres conseils

http://old.nabble.com/CellRenderer- modifiable sur-double-cliquez sur-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"

Je pense que le Treeview a sa propre fenêtre.

Obtenir la poignée de fenêtre, puis SendMessage (treeview-> Getsafehwnd (), tvi_root, tvichildren)

Le message ci-dessus d'envoi est pour votre compréhension que.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top