如果我在解释器中键入以下内容,它就像一个魅力:
from Tkinter import Tk
from tkFileDialog import askopenfilename
Tk().withdraw()
fh = open(askopenfilename(), 'r')
但是,如果我使用完全相同的命令编写/保存/运行脚本,虽然它可以工作(有点像预期的),打开的窗口变为空白并保留在屏幕上(打开所选文件后)并保持在一切。
因此,我需要再次单击Python图标才能关闭窗口。有一次这种情况停止了,但是当我在没有Tk().withdraw()
命令的情况下运行一次脚本时,问题又重新出现了。
我正在运行OSX Mavericks。如果没有办法修复bug,Python中是否有任何命令可以实现关闭此窗口?
答案 0 :(得分:2)
查看此问题的已接受答案When do I need to call mainloop in a Tkinter application?。您通常需要调用Tk.mainloop()
来启动Tk的事件循环处理。但是当您在交互式解释器中运行时,Python会为您调用Tk事件处理器,否则您将无法轻松地在交互式解释器中使用Tkinter。