Pregunta

Estoy tratando de atrapar un evento de doble clic en el área vacía de un TreeView para crear un nuevo nodo. Desafortunadamente forma estándar no funciona. He intentado fijar ButtonPressEvent tanto TreeView y el ScrolledWindow en el que está alojado T.V.. No consigo ningún devoluciones de llamada a mi función.

¿Cómo puedo solucionar esto?

¿Fue útil?

Solución

Usted tendrá que utilizar el GLib.ConnectBeforeAttribute en su manejador para manejar TreeView.ButtonPressEvent, de lo contrario el widget controlará el evento interno y su controlador no será llamado.

ejemplo:

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

Otros consejos

http://old.nabble.com/CellRenderer- editable-en-doble clic-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"

Creo que la vista de árbol tiene una ventana propia.

Obtener el identificador de ventana, y luego SendMessage (treeview-> Getsafehwnd (), TVI_ROOT, tvichildren)

El envío de mensaje anterior es sólo para su comprensión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top