Tkinter .after()冻结窗口

时间:2020-06-13 12:34:37

标签: python tkinter

我正在尝试使用tkinter编写一个脚本,该脚本使用.after()依次显示一些元素(并非同时显示所有元素)。

我的问题是所有元素在总等待时间结束后同时显示(总​​等待时间=每个元素各自时间的总和)。

我已经在网上检查了许多示例,并且我猜想我在使用.after()方法时出错,但是我只是想不通为什么。

我希望以下代码在每次循环后更新标签等待0.5秒。尽管如此,我总共等待了3秒钟,之后出现tkinter窗口,显示了列表的最后一个元素。

WritableValue = Union[str, int, bytes]

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,这很正常,但是您必须在时间延迟后添加一个处理程序。否则,计算机只会冻结程序,直到时间用完为止。

尝试一下:

root.after(500, handler)

它的作用是为处理程序创建一个函数,并在500ms之后程序将调用该函数。