首頁 > 後端開發 > Python教學 > 如何與 Tkinter 的事件循環同時執行外部程式碼?

如何與 Tkinter 的事件循環同時執行外部程式碼?

Susan Sarandon
發布: 2024-12-21 09:53:10
原創
320 人瀏覽過

How Can I Run External Code Concurrently with Tkinter's Event Loop?

與 Tkinter 的事件循環同時執行外部程式碼

將使用者定義的程式碼整合到 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板