隐藏加载无效图片时的“加载失败”消息,wxpython
bmp = wx.Image("C:\User\Desktop\cool.bmp", wx.BITMAP_TYPE_ANY).ConvertToBitmap()
如果我运行这个,它会自动显示一个错误信息,说是无法加载图片。我该怎么做才能让我的程序不这样做呢?
4 个回答
1
对于wxpython 4及以上版本,我可以通过调用下面的代码来关闭弹出消息:
wx.Log.EnableLogging(False)
或者通过调用下面的另一段代码:
wx.Log.SetLogLevel(wx.LOG_Error)
相关文档可以在这里找到
2
如果你只是想阻止异常被抛出,可以把它放在一个try/except块里:
try:
bmp = wx.Image("C:\User\Desktop\cool.py", wx.BITMAP_TYPE_ANY).ConvertToBitmap()
except:
pass
记住,最好只忽略特定的异常,并在发生时采取一些措施(比如告诉用户选择另一张图片):
try:
bmp = wx.Image("C:\User\Desktop\cool.py", wx.BITMAP_TYPE_ANY).ConvertToBitmap()
except <Specific Exception>, e:
doSomething() # Handle exception
因为这是一个实际的弹出消息,你可以使用 wx.Log_EnableLogging(False)
来关闭你应用程序中的错误日志记录。
要停止错误输出重定向,你可以设置 wx.App(redirect=False)
。
或者,如果你想把错误记录到文件中而不是在屏幕上显示,可以使用:
wx.App(redirect=True,filename='error_log')
0
我甚至无法让我的wxPython代码运行,如果我传入一个无效的图片。这可能和wxPython是一个轻量级的C++库的封装有关。你可以看看这个链接,里面有个有趣的解释:http://wiki.wxpython.org/C%2B%2B%20%26%20Python%20Sandwich。
解决这类问题的最好办法是使用Python的os模块,像这样:
if os.path.exists(path):
# then create the widget
我通常会对配置文件和其他文件做这样的处理。如果文件不存在,我要么自己创建它,要么就不创建这个组件,或者我会显示一个消息,这样我就知道需要去修复它。