2013-10-31 36 views
0

如果我键入它就像一个魅力的解释如下:Tk的打开窗口的问题/错误

from Tkinter import Tk 
from tkFileDialog import askopenfilename 

Tk().withdraw() 
fh = open(askopenfilename(), 'r') 

不过,如果我写/保存/完全相同的命令运行的脚本,但它的工作原理(有点像预期的那样),打开的窗口变为空白并保持在屏幕上(在打开所选文件之后),并保持在一切之上。

因此,我需要再次单击Python图标才能关闭窗口。有一次,这种情况停止了,但是当我在没有Tk().withdraw()命令的情况下运行脚本时,问题重新出现。

我正在运行OSX小牛队。如果没有办法修复这个bug,是否有Python中的任何命令可以实现,关闭这个窗口?

+0

我有同样的问题。它实际上是在我寻找一种摆脱烦人警告的方式时开始的。看到[这](http://stackoverflow.com/questions/18733965/annoying-message-when-opening-windows-from-python-on-os-x-10-8)后。我尝试了建议的解决方案,并开始体验您所描述的行为。我通过在终端输入'defaults write org.python.python ApplePersistenceIgnoreState YES'解开命令。它似乎不是最好的解决方案,但它的工作原理。 – Keith

回答

2

查看此问题的接受答案When do I need to call mainloop in a Tkinter application?。您通常需要拨打Tk.mainloop()开始Tk的事件循环处理。但是当你在交互式解释器中运行时,Python会为你调用Tk事件处理器,否则你将无法轻松地在交互式解释器中使用Tkinter。