Tkinter是Python原生的GUI包,但是使用的過程中我發現了一個狀況,是這樣的:
首先肯定有一個頂級的容器即root = tkinter.Tk(),但是在觸發一個事件的過程中比如觸發了Button的command,可能會修改其他組件的屬性(Entry,Canvas等)。但是處理Button觸發事件的過程中其他組件的屬性貌似沒有被實時更新,直到Button事件完全處理完才會進行一次更新。查閱資料后我發現一個方法能夠使得根容器得到強制更新:
很簡單:root.update()
比如我設置點擊按鈕后立即清除畫布上所有的東西,但是隨后我立刻用一個操作阻塞住。這樣的話雖然畫布已經被清除,但是root還沒有被更新,此時我們使用root.update()就可以看到畫布被清除,之后再使用阻塞操作,行為就都合理了~