Menu contextuel

Nombre de programmeurs ont besoin d'implémenter des menus contextuels s'ouvrant d'un clic droit de souris sur des objets TreeView. Pour vous faire gagner du temps, nous allons expliquer ici comment faire. À un ou deux points près, cela ressemble tout à fait à un menu contextuel normal tel que décrit dans le chapitre Menus.

IX.VII.I. Gestion du signal button_press_event

Pour détecter un clic du bouton droit de la souris, il faut gérer le signal button_press_event et vérifier quel est exactement le bouton pressé. Comme TreeView gère normalement ce signal intégralement, vous devrez, soit procéder à la surdéfinition du gestionnaire de signal par défaut dans une classe TreeView dérivée, soit utiliser la fonction membre connect_notify() à la place de connect(). Vous souhaiterez probablement aussi appeler le gestionnaire par défaut avant de faire quoi que ce soit d'autre ; un clic-droit provoque donc au préalable la sélection de la ligne.

Ceci est montré dans l'exemple Menu contextuel personnalisé.