Menú contextual emergente

Mucha gente necesita implementar menús contextuales del botón derecho para los TreeView, por lo que se explicará cómo hacerlo para ahorrarle tiempo. Excepto uno o dos puntos, es muy parecido a un menú contextual normal, tal como se describe en el capítulo acerca de menús.

9.7.1. Manejar button_press_event

Para detectar la pulsación del botón derecho del ratón, debe manejar la señal button_press_event, y verificar exactamente qué botón se ha pulsado. Dado que el TreeView normalmente maneja esta señal por completo, necesitará sobrecargar el manejador de señales predeterminado en una clase TreeView derivada o bien usar el método connect_notify() en lugar de connect(). Probablemente también quiera llamar al manejador predeterminado antes de hacer nada más, para que la pulsación derecha haga que se seleccione la fila primero.

Esto queda demostrado en el ejemplo del menú emergente personalizado.