Comment attraper clics dans un gtk.TreeView?
-
21-08-2019 - |
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?
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.