3

可能重复:
如何在 Windows 上运行的 PyQt 应用程序中隐藏控制台窗口?

如何摆脱在 Windows 中运行 wxPython 程序时显示为标准输出的控制台?

4

4 回答 4

6

不熟悉 wxPython,但如果您使用 pythonw.exe 而不是 python.exe 调用脚本,则不应出现控制台窗口。我相信将脚本另存为 script.pyw 也可以。

于 2009-08-21T09:39:35.100 回答
6

其他人已经建议将 py 重命名为 pyw。如果您在创建 wx.App 类时改为参考输出重定向传递 redirect=True。

参见例如http://www.wxpython.org/docs/api/wx.App-class.html

的签名__init__

__init__(self, redirect=False, filename=None, useBestVisual=False, clearSigInt=True)

如果您设置redirect=True和文件名与无不同,sys.stdout并且sys.stderr将被重定向到文件名。请注意,在 Windows 和 Mac 上,重定向默认值为 True。如果redirect==True and filename is None,输出将打印在与其他框架不同的弹出窗口中。这非常有用,因此在调试时您可以跟踪正在发生的事情,同时不会在发布模式下将用户界面与应用程序的内部结构弄得一团糟。

于 2009-08-21T10:09:35.413 回答
6

最简单的方法是:

if __name__ == "__main__":
    app = wx.App(0) #<--- or False
    frame = MyFrame('My Frame')
    frame.Show(True)
    app.MainLoop()

这将打印到标准输出而不是 wxPython 窗口。

于 2009-08-21T12:44:58.467 回答
3

我不知道 wxPython,但解决方案可能就像使用pythonw.exe运行程序而不是python.exe.

于 2009-08-21T09:39:31.917 回答