update()屈服于事件循环(mainloop),允许它处理未决事件。
after,当给定一个或多个参数时,只需将事件放在具有时间戳的事件队列中。在给定时间过去并且事件循环有机会处理它之前,不会处理该事件。
重要的是要知道事件循环需要能够不断响应事件。事件不仅用于按钮点击和键盘键,还用于响应重绘窗口,滚动数据,更改边框和颜色的请求,当您将鼠标悬停在窗口小部件上时等。
当你打电话时sleep(),程序正是这样 - 它会睡觉。在它睡觉时它无法处理任何事件。任何睡眠都会导致您的GUI口吃。睡眠时间越长,口吃就越明显。