Tkinter是Python原生的GUI包,但是使用的过程中我发现了一个状况,是这样的:
首先肯定有一个顶级的容器即root = tkinter.Tk(),但是在触发一个事件的过程中比如触发了Button的command,可能会修改其他组件的属性(Entry,Canvas等)。但是处理Button触发事件的过程中其他组件的属性貌似没有被实时更新,直到Button事件完全处理完才会进行一次更新。查阅资料后我发现一个方法能够使得根容器得到强制更新:
很简单:root.update()
比如我设置点击按钮后立即清除画布上所有的东西,但是随后我立刻用一个操作阻塞住。这样的话虽然画布已经被清除,但是root还没有被更新,此时我们使用root.update()就可以看到画布被清除,之后再使用阻塞操作,行为就都合理了~
所有评论(0)