Come catturare i clic in un Gtk.TreeView?
-
21-08-2019 - |
Domanda
Sto cercando di catturare un evento di doppio clic nell'area vuota di TreeView per creare un nuovo nodo.Sfortunatamente il modo standard non funziona.Ho provato ad allegare ButtonPressEvent sia a TreeView che a ScrolledWindow in cui T.V.è ospitato.Non ricevo alcuna richiamata alla mia funzione.
Come posso risolvere questo?
Soluzione
Dovrai utilizzare GLib.ConnectBeforeAttribute sul tuo gestore per gestire TreeView.ButtonPressEvent, altrimenti il widget gestirà l'evento internamente e il tuo gestore non verrà chiamato.
esempio:
[GLib.ConnectBefore]
void OnTreeViewButtonPressEvent(object sender, ButtonPressEventArgs e)
{
if (e.Type == Gdk.EventType.TwoButtonPress)
{
// double click
}
}
Altri suggerimenti
http://old.nabble.com/CellRenderer- modificabile-on-doppio-click-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"
Credo che il Treeview ha una propria finestra.
Ottenere l'handle della finestra, e poi SendMessage (treeview-> Getsafehwnd (), tvi_root, tvichildren)
Il messaggio di invio di cui sopra è solo per la vostra comprensione.