0
当用户双击文本小部件中的单词时,将调用一些内部回调,这会导致选择一个单词。我想要对这个词做一些额外的任务。我怎样才能做到这一点?天真的想法是将我自己的回调绑定到双击。它没有工作,因为错误的优先级:我的回调首先被执行,在选择该单词之前,并且之后调用了文本回调。 我该如何解决这个问题?Tkinter文本:用双击选中的单词调用自定义函数
的想法是一个把手retreive现有的回调并重新使用它之后:
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)
请帮助定稿本方式,或随意提出一个更好的方式来达到我原来的目标。
哇。我很佩服。我不知道这个Text.after方法。它的工作非常完美。谢谢。 – quickbug
我认为'text.after(0,my_callback,e)'也可以。它应该在当前点击事件完成后将回调分配给下一个事件。我也认为你可能有一个错字:'wait a beat' –
@quickbug'after()'方法是你在tkinter中执行任何定时动作的方式,因为wait()和sleep()会导致你的整个程序冻结而不是仅提供定时事件。 –