將使用者定義的程式碼整合到 Tkinter 的事件循環中可能是一個挑戰。在這種情況下,新手程式設計師遇到了 Tkinter 主導事件循環的問題,導致鳥群模擬無法連續執行。
為了解決這個問題,Tk 物件提供了一個強大的方法:after。此方法的語法如下:
def after(self, ms, func=None, *args): """Call function once after given time. MS specifies the time in milliseconds. FUNC gives the function which shall be called. Additional parameters are given as parameters to the function call. Return identifier to cancel scheduling with after_cancel."""
透過使用 after,您可以安排函數在指定的時間間隔後執行。以下是範例:
from tkinter import * root = Tk() def task(): print("hello") root.after(2000, task) # reschedule event in 2 seconds root.after(2000, task) root.mainloop()
在此範例中,任務函數計畫在 Tkinter 事件循環中每 2 秒執行一次。 mainloop 函數確保 Tkinter 在排程任務執行時繼續處理事件。
該解決方案提供了一種可靠且簡單的方法來與Tkinter 的事件循環一起運行外部程式碼,消除了對複雜的多執行緒概念的需要,並避免了hackish “按住按鈕”方法。
以上是如何與 Tkinter 的事件循環同時執行外部程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!