由于某种原因,每当我尝试将while
循环合并到我的tkinter
程序中时,我创建的窗口就会冻结并显示“无响应”。这是因为while
与tkinter
不兼容吗?如果是这样,请让我知道解决这个问题的方法。
答案 0 :(得分:0)
“不兼容”不是正确的词。 Tkinter程序当然可以使用while循环。实际上,mainloop
本身是一个while循环。
问题不是兼容性,只是tkinter是单线程的,一次只能做一件事。如果python正在运行您的循环,则除非您明确地使之发生,否则它也不能同时更新屏幕和处理事件。
如果是这样,请让我知道解决这个问题的方法。
问题的这一部分对于stackoverflow来说太宽泛了。有很多解决方法,但这取决于您在while循环中实际尝试执行的操作。例如,您可以在另一个线程中运行循环。您可以在单独的过程中运行它。您可以将其分解为较小的块,这些块在tkinter需要更新屏幕的时间之间运行,或者可以明确地要求tkinter在循环的中间更新屏幕。