tkinter.mainloop 无法工作
我正在尝试创建一个基本的Tkinter窗口。
根据网上的教程,要创建一个窗口必须使用以下代码:
import Tkinter
window=Tkinter.Tk()
window.mainloop()
但是当我直接运行相同的代码时,Python会直接显示窗口,而window=Tkinter.Tk()
和window.mainloop()
似乎没有任何效果。
有没有人能解释一下这是为什么吗?
补充:当我把代码放到一个文件里并运行时,它工作得很好。只是从交互式提示符下运行时不行。
1 个回答
1
调用 mainloop
是为了让你在窗口创建后可以与它进行互动。如果你有一个只做以下事情的 Python 脚本:
import Tkinter
window = Tkinter.Tk()
这个脚本在创建 window
后会立刻退出,所以你可能连窗口出现的机会都没有,窗口就消失了。(这还得看 window
是否真的被显示出来;在我对 Linux 和 Windows 的测试中,只有在调用 mainloop
后,window
才会被显示出来;即使我在 Tkinter.Tk()
调用后加了 time.sleep
,window
也只会在交互提示符中显示,而没有 mainloop
的话是不会显示的。)
mainloop()
还有一个最重要的功能,就是让 Tkinter
能够监听在 Tk
对象上发生的事件,比如按下按钮、单选框等,这些控件可能嵌入在窗口中,并将这些事件分发给你绑定的处理方法。如果没有这个功能,你就只能看着一个窗口,而没法做其他事情。