與Tkinter 的事件循環同時運行自訂程式碼
在使用Tkinter 時,很明顯它的事件循環消耗了過多的處理時間,阻礙自訂程式碼的執行。具體來說,在一個實例中,模擬鳥群需要不斷移動,但這種移動受到事件循環對系統的控制的阻礙。
要解決此問題並允許自訂程式碼與主循環同時執行沒有多執行緒的複雜性,可以使用 Tk 物件的 after 方法。
from tkinter import * root = Tk() def move(): # Custom code to update bird positions root.after(2000, move) # Schedule the move() function to run again in 2 seconds root.mainloop() # Start the Tkinter event loop
after 方法安排在指定的時間間隔後執行函數。在這裡,我們使用它來安排 move() 函數每 2 秒運行一次,讓我們的自訂程式碼有機會在事件循環迭代之間執行。
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."""
以上是如何在沒有多執行緒的情況下與 Tkinter 的主循環同時執行自訂程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!