【问题标题】:Tk open window issue/bugTk 打开窗口问题/错误
【发布时间】:2013-10-31 19:03:07
【问题描述】:

如果我在解释器中输入以下内容,它就像一个魅力:

from Tkinter import Tk
from tkFileDialog import askopenfilename

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

但是,如果我使用完全相同的命令编写/保存/运行脚本,尽管它可以工作(有点像预期的那样),打开的窗口会变为空白并保持在屏幕上(打开所选文件后)并停留在顶部一切。

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

我正在运行 OSX Mavericks。如果没有办法修复这个错误,我可以在 Python 中执行任何关闭此窗口的命令吗?

【问题讨论】:

  • 我遇到了同样的问题。它实际上是在我寻找一种摆脱烦人警告的方法时开始的。请参阅this 帖子。我尝试了建议的解决方案并开始体验您描述的行为。我通过在终端中输入defaults write org.python.python ApplePersistenceIgnoreState YES 取消了该命令。这似乎不是最好的解决方案,但它确实有效。

标签: python tkinter


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多