如何摆脱在 Windows 中运行 wxPython 程序时显示为标准输出的控制台?
4 回答
不熟悉 wxPython,但如果您使用 pythonw.exe 而不是 python.exe 调用脚本,则不应出现控制台窗口。我相信将脚本另存为 script.pyw 也可以。
其他人已经建议将 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
,输出将打印在与其他框架不同的弹出窗口中。这非常有用,因此在调试时您可以跟踪正在发生的事情,同时不会在发布模式下将用户界面与应用程序的内部结构弄得一团糟。
最简单的方法是:
if __name__ == "__main__":
app = wx.App(0) #<--- or False
frame = MyFrame('My Frame')
frame.Show(True)
app.MainLoop()
这将打印到标准输出而不是 wxPython 窗口。
我不知道 wxPython,但解决方案可能就像使用pythonw.exe
运行程序而不是python.exe
.