tkinter.mainloop不起作用

时间:2014-06-30 15:22:36

标签: python python-2.7 tkinter

我正在尝试创建一个基本的Tkinter窗口 根据在线教程,要创建一个窗口,必须使用以下内容:

import Tkinter
window=Tkinter.Tk()
window.mainloop()

但是当我尝试相同的代码时,python直接显示window=Tkinter.Tk()中的窗口而window.mainloop()没有效果。 有谁能解释为什么?

编辑:当我把它放在一个文件中并运行它时,代码完美无缺。它只是在交互式提示下无效。

1 个答案:

答案 0 :(得分:1)

mainloop的调用就在那里,以便您可以在创建窗口后与其进行交互。如果您有一个只执行此操作的Python脚本:

import Tkinter
window = Tkinter.Tk()

脚本会在创建window后立即退出,所以你很幸运地看到它在脚本退出之前就消失了。 (即如果甚至根本绘制了window;在Linux和Windows上的测试中,除非window被调用,否则mainloop从未被绘制;即使我调用了{{} 1}}在time.sleep调用之后,Tkinter.Tk()只会在交互式提示中没有window调用的情况下绘制。

mainloop也(最重要的是)允许mainloop()侦听Tkinter对象上发生的事件,例如按下可能嵌入的按钮,无线电等它,并将这些事件分派给绑定到被触发事件的方法。如果没有这种功能,你只需要一个可以看到的窗口,而不是其他。