【问题标题】:How to prevent tkinter window from closing when I close Windows command console关闭 Windows 命令控制台时如何防止 tkinter 窗口关闭
【发布时间】:2015-01-28 03:40:36
【问题描述】:

我打开我的 CMD 控制台来运行我的 main.exe。我输入:

python main.exe

我的 main.exe 是一个用 Tkinter 编写的小窗口。当我关闭命令控制台时,我的程序结束并且窗口关闭。我想终止控制台而不终止程序。

编辑:

将我的文件另存为 .pyw 不起作用。此外,控制台不只是神奇地出现。我没有在 IDE 中运行脚本。我用DOS打开它。当我关闭 cmd 控制台时,程序就关闭了。

【问题讨论】:

    标签: python-2.7 tkinter


    【解决方案1】:

    用 pythonw.exe 运行它。

    这样做的原因是,在 Windows 上,可执行文件有一个标志来告诉操作系统他们是否使用控制台。 python.exe 需要一个控制台,如果尚未附加到一个控制台,它将创建一个。 pythonw.exe 与 GUI 标志链接,不会创建控制台,如果从控制台窗口运行,则会与该控制台分离。

    这就是为什么 Tk 在 Windows 上使用 wish.exe 而不是带有 'package require Tk' 的 tclsh.exe,这在 Unix 上可以,但在 Windows 上会出现不需要的控制台窗口。

    如果将扩展名更改为 .pyw 无助于检查与此扩展名关联的程序。例如,在装有 Python 3.4 的 Windows 机器上,我有:

    C:\opt\Python>assoc .pyw
    .pyw=Python.NoConFile
    
    C:\opt\Python>ftype Python.NoConFile
    Python.NoConFile="C:\Windows\pyw.exe" "%1" %*
    

    并且 pyw.exe 在运行时没有附加到我的控制台。

    【讨论】:

    • 完美。在 SO 上的任何地方都找不到这个答案。
    猜你喜欢
    • 2012-04-22
    • 2014-04-11
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多