2010-11-18 16 views
0

Vous vous demandez si un événement de menu peut être lié à l'élément de menu actuellement sélectionné? Par élément de menu, je veux dire les éléments qui apparaissent dans un menu contextuel comme Nouveau, Ouvrir, Enregistrer, etc.Python/Tkinter: lier à un événement lié à l'élément de menu actuellement sélectionné

Cas d'utilisation: Je voudrais mettre à jour une zone de la barre d'état de notre application avec une description de l'élément de menu actuellement sélectionné .

Toutes les idées ont été appréciées.

Merci, Malcolm

Répondre

1

Vous devez lier à l'événement <<MenuSelect>>.

+0

Merci. L'événement <> est exactement ce que je cherche. Malheureusement, j'ai un défi en essayant de gérer cet événement une fois que je l'ai capturé. Plus précisément, je lie à une fonction définie comme update_statusbar (event = None). Une simple instruction d'impression dans cette fonction confirme que ma liaison d'événement est correcte. Toutefois, event.widget renvoie une chaîne par rapport à une référence de widget. Il semble que je ne reçois pas un objet événement normal. Est-ce que ça sonne bien? Des suggestions sur la façon dont je peux déterminer l'élément de menu actuellement sélectionné via l'objet d'événement que je reçois? – Malcolm

-1

Il y a un événement <Enter> qui est déclenché lorsque le pointeur de la souris entre dans l'espace d'un widget. Selon la façon dont vous construisez votre menu, vous pourrez peut-être l'utiliser.

Voir http://www.pythonware.com/library/tkinter/introduction/events-and-bindings.htm pour plus

+0

Les commandes de construction de menu Tkinter ne renvoient pas de référence de widget pour me lier, par exemple. la méthode de menu add_command() renvoie None. – Malcolm

+0

@Malcolm Je craignais que, puisque vous structurez votre menu de la "manière traditionnelle", je ne pense pas qu'il y ait un événement pour soutenir ce que vous voulez. –