0

当用户在 Text 小部件中双击一个单词时,会调用一些内部回调,从而选择一个单词。我想对这个词做一些额外的任务。我怎样才能做到这一点?天真的想法是将我自己的回调绑定到双击。由于优先级错误,它没有工作:我的回调首先执行,在选择单词之前,然后调用 Text 回调。我该如何解决?

一个想法是检索现有回调的句柄并在之后重用它:

actual_callback = **<how can I get this handle?>**    
text.bind("<Double-Button-1>", my_callback)

那么我的回调将直接写如下:

def my_callback(event):
    actual_callback(event) # this will select the word
    w = text.selection_get()
    do_something(w)

请帮助以这种方式完成它,或者随意提出实现我最初目标的更好方法。

4

1 回答 1

3

简单的答案是在运行回调之前稍等片刻。

text.bind("<Double-Button-1>", lambda e: text.after(2, my_callback, e)) # wait 2 ms before running callback
于 2017-10-05T16:55:30.673 回答