2013-10-31 37 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。