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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top