Lorsque l'utilisateur double-clique sur un mot dans un widget Texte, un rappel interne est appelé, ce qui entraîne la sélection d'un mot. Je veux avoir une tâche additionnelle à faire sur ce mot. Comment puis je faire ça? L'idée naïve était de lier mon propre rappel au double clic. Cela n'a pas fonctionné, à cause d'une mauvaise priorité: mon rappel a été exécuté en premier, avant que le mot ne soit sélectionné, et le rappel de texte a été appelé après. Comment puis-je résoudre ce problème?Tkinter Text: appel d'une fonction personnalisée avec le mot sélectionné en double-cliquant
Une idée serait de retreive une poignée pour le rappel existant et le réutiliser après:
actual_callback = **<how can I get this handle?>**
text.bind("<Double-Button-1>", my_callback)
alors mon rappel serait carrément écrire comme suit:
def my_callback(event):
actual_callback(event) # this will select the word
w = text.selection_get()
do_something(w)
S'il vous plaît aider à finaliser cette manière, ou n'hésitez pas à proposer un meilleur moyen d'atteindre mon objectif initial.
Wow. Je suis impressionné. Je ne connaissais pas cette méthode Text.after. Cela a fonctionné à la perfection. Merci. – quickbug
Je pense que 'text.after (0, my_callback, e)' fonctionnerait aussi bien. Il devrait affecter le rappel à l'événement suivant après que l'événement de clic en cours est terminé. Je pense aussi que vous pouvez avoir une faute de frappe: 'wait a beat' –
@quickbug la méthode' after() 'est la façon dont vous effectuez des actions minutées dans tkinter car' wait() 'et' sleep() 'provoqueront l'ensemble de votre programme geler au lieu de simplement fournir un événement chronométré. –