Python Tkinter Text:用双击选择的单词调用自定义函数
当用户双击文本小部件中的一个单词时,会调用一些内部回调,从而选择一个单词。我想在那个词上做些额外的工作。我该怎么做?天真的想法是将我自己的回调绑定到双击。它没有工作,因为优先级错误:我的回调是在选择单词之前首先执行的,而文本回调是在选择单词之后调用的。 我怎样才能解决这个问题 一个想法是检索现有回调的句柄,并在以下情况下重用它:Python Tkinter Text:用双击选择的单词调用自定义函数,python,tkinter,callback,text-widget,Python,Tkinter,Callback,Text Widget,当用户双击文本小部件中的一个单词时,会调用一些内部回调,从而选择一个单词。我想在那个词上做些额外的工作。我该怎么做?天真的想法是将我自己的回调绑定到双击。它没有工作,因为优先级错误:我的回调是在选择单词之前首先执行的,而文本回调是在选择单词之后调用的。 我怎样才能解决这个问题 一个想法是检索现有回调的句柄,并在以下情况下重用它: actual_callback = **<how can I get this handle?>** text.bind("<Double-B
actual_callback = **<how can I get this handle?>**
text.bind("<Double-Button-1>", my_callback)
请以这种方式帮助完成它,或者可以提出一种更好的方法来实现我的原始目标。简单的答案是在运行回调之前等待一个节拍
text.bind("<Double-Button-1>", lambda e: text.after(2, my_callback, e)) # wait 2 ms before running callback
text.bind(“,lambda e:text.after(2,my_callback,e))35;在运行callback之前等待2毫秒
简单的答案是在运行回调之前只需等待一拍
text.bind("<Double-Button-1>", lambda e: text.after(2, my_callback, e)) # wait 2 ms before running callback
text.bind(“,lambda e:text.after(2,my_callback,e))35;在运行callback之前等待2毫秒
Wow。我印象深刻。我不知道这篇课文的后处理方法。它工作得非常完美。谢谢。我想文本。在(0,我的_回调,e)
之后也可以。它应该在当前单击事件完成后将回调分配给下一个事件。我还认为您可能有输入错误:wait a beat
@quickbugafter()
方法是您在tkinter中执行任何定时操作的方式,因为wait()
和sleep()
将导致整个程序冻结,而不仅仅是提供一个定时事件。感谢您的提示。顺便说一句,我改变了帖子的标题,以反映小说给出的解决方案。希望它能帮助其他同样需要重定向到这篇文章的人。@quickbug所有tkinter小部件都有一个后的方法。哇。我印象深刻。我不知道这篇课文的后处理方法。它工作得非常完美。谢谢。我想文本。在(0,我的_回调,e)
之后也可以。它应该在当前单击事件完成后将回调分配给下一个事件。我还认为您可能有输入错误:wait a beat
@quickbugafter()
方法是您在tkinter中执行任何定时操作的方式,因为wait()
和sleep()
将导致整个程序冻结,而不仅仅是提供一个定时事件。感谢您的提示。顺便说一句,我改变了帖子的标题,以反映小说给出的解决方案。希望它能帮助其他同样需要重定向到这篇文章的人。@quickbug所有tkinter小部件都有一个after
方法。