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()會導致你的整個程序凍結而不是僅提供定時事件。 –