悄然无声的 Blog
不是我不明白,这世界变化快!

{{{wxPython 程序在调试过程中经常会出现这种情况:一个白色的窗口一闪就结束了,到底程序哪里出了问题根本看不清楚,而控制台窗口什么提示也没有。

 

会出现这种问题是因为在 Windows 平台下 wxPython 会将输出流定向到一个默认的窗口中,如果我们想留住这个窗口看清里面的错误信息,在运行程序的时候可以加一个 i 参数,如下:

python  -i   test.py

 

但是大多数时候我们还是希望在控制台窗口里看见错误信息,毕竟控制台窗口比较简单,交互性强,为了达到这个目的,就需要重定向 wx.App 的输出。}}}

 

{{{我们可以先看一下 wx.App 的构造函数:

 __init__(selfredirect=Falsefilename=NoneuseBestVisual=FalseclearSigInt=True) 

 

注意第二个参数 redirect ,这个参数在文档说明中默认是 False ,但实际上默认值是 True ,具体是版本的原因还是平台的原因我也不知道。

这种情况下如果我们像这样创建应用程序对象:

app=wx.App( )

则默认系统输出被重定向,就会出现错误信息窗口一闪而过的情况。

 

如果我们像下面这样创建:

app=wx.App(False)

或者

app=wx.App(redirect=False)

则重定向被关闭,所有输出都定向到标准输出,即控制台窗口,这样就达到了目的。

 

另外还有第二个参数 filename ,如果在 redirect = True  重定向被打开的情况下,设定 filename 将会是所有的输出定向到你指定的这个文本文件中,对于一些就复杂的调试,这是十分有用的。

 

}}}

//==========================================
posted on 2011-02-08 14:22  左洸  阅读(1380)  评论(0编辑  收藏  举报