关闭Windows命令控制台时如何防止tkinter窗口关闭

时间:2014-11-29 19:41:01

标签: python-2.7 tkinter

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

python main.exe

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

编辑:

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

1 个答案:

答案 0 :(得分:2)

使用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不会附加到我的控制台。