我試圖弄清楚如何在 tkinter 中處理事件佇列。我曾經發現過

uj5u.com熱心網友回復:
要對 tkinter 的事件佇列進行排序,必須繞過所有事件并按首選順序觸發它們。或者適用于特定型別的事件,意味著特定的標志。否則 tkinters通知程式將處理如下事件的順序。tcl 知識人員的另一個解決方案是撰寫自己的通知程式,如此處所述。
Tcl_Notifier
|
|
|
Tcl_DoOneEvent ------ ----> get_first/oldest from Tcl_WINDOW_EVENTS (processes msg of WM)
^ |
| ----> get_first/oldest from Tcl_FILE_EVENTS (tk.Tk.createfilehandler)
| |
| ----> get_first/oldest from Tcl_TIMER_EVENTS (after)
| |
| ----> get_first/oldest from Tcl_IDLE_EVENTS (after_idle)
| |
| ----> get_first/oldest from Other event sources (virtual events)
| |
| ----> Tcl_SetTimer(time|maxtime) ----> Tcl_WaitForEvent ----
| |
-------------------------------------------------------------------------------
順便說一句,還有一些額外的結論:
- 如果在 maxtime 之后無法呼叫命令 Tcl_DoOneEvent,則會出現運行時錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358531.html
標籤:python python-3.x tkinter event-handling
上一篇:如果有def作業,如何禁用按鈕?
