我是 tkinter 的新手,我正試圖找出基于在不同執行緒中運行的一些非 ui 邏輯來更新 UI 的最佳實踐。
例如,現在我有一個按鈕可以觸發一個執行緒的創建,它的run()方法處理一些繁重的邏輯。在該邏輯期間,我希望能夠更新 UI,例如啟用/禁用某些按鈕。
我想創建一個事件佇列,將其傳遞給運行邏輯執行緒,該執行緒將事件放入該佇列,而 UI 背景關系中的另一個執行緒將從該佇列中提取事件并相應地更新 UI。
我一直在看這里,但看起來這些事件旨在根據 UI 中發生的事情觸發一些操作,我實際上需要相反的內容。
uj5u.com熱心網友回復:
Tkinter 允許您生成可以像任何其他事件一樣系結的虛擬事件。這是通過方法完成的event_generate。我的理解是從非 GUI 執行緒呼叫這是安全的。
例如,在您的作業執行緒中,您可以執行以下操作(假設執行緒可以訪問根小部件):
root.event_generate("<<CustomEvent>>")
然后,在主 GUI 執行緒中,您可以系結到此事件以更新標簽。
root.bind("<<CustomEvent>>", do_something)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/360442.html
