在Windows下的wxPython中删除Python控制台

时间:2009-08-21 09:36:01

标签: python windows console wxpython windows-console

  

可能重复:
  How can I hide the console window in a PyQt app running on Windows?

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

4 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分: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.stdoutsys.stderr将重定向到文件名。请注意,在Windows和Mac重定向上,默认值为True。如果redirect==True and filename is None,输出将打印在与其他帧不同的弹出窗口中。 这非常有用,因此在调试时您可以关注正在发生的事情,同时不会在发布模式下将应用程序内部的用户界面弄乱。

答案 2 :(得分:6)

最简单的方法:

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

这将打印到stdout而不是wxPython窗口。

答案 3 :(得分:3)

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