while循环与tkinter不兼容吗?

时间:2018-06-29 13:18:25

标签: python tkinter

由于某种原因,每当我尝试将while循环合并到我的tkinter程序中时,我创建的窗口就会冻结并显示“无响应”。这是因为whiletkinter不兼容吗?如果是这样,请让我知道解决这个问题的方法。

1 个答案:

答案 0 :(得分:0)

“不兼容”不是正确的词。 Tkinter程序当然可以使用while循环。实际上,mainloop本身是一个while循环。

问题不是兼容性,只是tkinter是单线程的,一次只能做一件事。如果python正在运行您的循环,则除非您明确地使之发生,否则它也不能同时更新屏幕和处理事件。

  

如果是这样,请让我知道解决这个问题的方法。

问题的这一部分对于stackoverflow来说太宽泛了。有很多解决方法,但这取决于您在while循环中实际尝试执行的操作。例如,您可以在另一个线程中运行循环。您可以在单独的过程中运行它。您可以将其分解为较小的块,这些块在tkinter需要更新屏幕的时间之间运行,或者可以明确地要求tkinter在循环的中间更新屏幕。