Python mainloop防止Tkinter应用程序从空闲状态运行

Python mainloop防止Tkinter应用程序从空闲状态运行,python,tkinter,Python,Tkinter,使用Ubuntu时,我可以通过在IDLE中编写命令,实时使用Tk 在Windows上,我需要调用root.mainloop()生成一个窗口,该循环阻止我从IDLE运行任何代码 这是平台问题,还是我做错了什么 我没有一个完整的解决方案或答案,但我在这个问题上发现了一些东西: 从本页: 请注意,您不应在空闲状态下运行这些程序。IDLE本身就是一个Tkinter应用程序,它自己的“mainloop”将与这些程序中的mainloop冲突。如果您确实想使用IDLE查看和运行这些程序,那么——对于每个程序—

使用Ubuntu时,我可以通过在
IDLE
中编写命令,实时使用
Tk

在Windows上,我需要调用
root.mainloop()
生成一个窗口,该循环阻止我从
IDLE
运行任何代码


这是平台问题,还是我做错了什么

我没有一个完整的解决方案或答案,但我在这个问题上发现了一些东西:

从本页:

请注意,您不应在空闲状态下运行这些程序。IDLE本身就是一个Tkinter应用程序,它自己的“mainloop”将与这些程序中的mainloop冲突。如果您确实想使用IDLE查看和运行这些程序,那么——对于每个程序——您应该在运行程序之前注释掉程序中的“mainloop”语句


我不太确定它背后的技术原因——但我只是不在空闲状态下运行Tkinter代码。

我没有完整的解决方案或答案,但我在这个主题上发现了一些东西:

从本页:

请注意,您不应在空闲状态下运行这些程序。IDLE本身就是一个Tkinter应用程序,它自己的“mainloop”将与这些程序中的mainloop冲突。如果您确实想使用IDLE查看和运行这些程序,那么——对于每个程序——您应该在运行程序之前注释掉程序中的“mainloop”语句


我不太确定它背后的技术原因,但我只是不在空闲状态下运行Tkinter代码。

我找到了一个解决方案:您可以通过定义所有几何图形并在主窗口上调用update()来预览应用程序窗口。谢谢你的洞察力,从现在起我会记住这一点。:)“不要从空闲状态运行Tkinter代码”在2011年之前已经过时。这本书在2009年修订,并在那之前写了一段时间。多年来,IDLE一直在一个单独的无窗口进程(除非以-n开头)中运行用户代码,该进程没有运行tkinter mainloop。我得到了一个解决方案:通过定义所有几何图形并在主窗口上调用update()可以预览应用程序窗口。谢谢你的洞察力,从现在起我会记住这一点。:)“不要从空闲状态运行Tkinter代码”在2011年之前已经过时。这本书在2009年修订,并在那之前写了一段时间。多年来,IDLE一直在一个单独的无窗口进程中运行用户代码(除非以-n开头),该进程没有运行tkinter Main循环。2011年关于IDLE和Windows的任何事实现在都不成立。我通常通过不添加
mainloop()
从空闲状态以交互方式玩tkinter<代码>>>>将tkinter作为tk导入;root=tk.tk()生成一个空白的tk窗口。2011年关于IDLE和Windows的任何事实现在都不是真的。我通常通过不添加
mainloop()
从空闲状态以交互方式玩tkinter<代码>>>>将tkinter作为tk导入;root=tk.tk()生成一个空白的tk窗口。