4

我正在为我用 python 编写的应用程序编写菜单,使用 wxPython 库作为用户界面,并且我正在尝试将图标添加到某些菜单项。因为我试图对此认真负责,所以我试图限制如果引用的图像文件之一不存在所造成的损害,最简单的方法(在我看来)是使用异常。

问题是,当我链接到一个不存在的文件时,不会引发异常。相反,我收到一个可怕的消息框,说明:

Can't load image from <path>: Image does not exist.

这条消息正是我试图阻止的类型,但即使使用最广泛的异常捕获语句也没有任何作用。

这是一个精简版,从我所写的内容中获取似乎相关的内容:

NewProject = wx.MenuItem(File, -1, "&New Project\tCtrl+N", "Create a new project")
try:
    # raises an error message but not an exception
    NewProject.SetBitmap(wx.Image( <path>  ), wx.BITMAP_TYPE_PNG).ConvertToBitmap())
except Exception:
    pass

所以这些是我的问题:我做错了什么?当有其他方法解决它时(尽管在我的脑海中似乎不是那么简单),我是否朝着错误的方向接近这个问题,过于强调异常?这是 wxPython 库中的错误吗,因为我很确定它应该抛出异常,即使它不是最好的解决方法?

ps 谷歌搜索可以做的最好的事情是建议我使用 wxPython 附带的模块将所有图像转换为 python 代码img2py,但我更愿意将图像保留为图像格式以用于我正在做的事情。

4

1 回答 1

3

这是一个已知问题。Robin Dunn回答了几次:只需创建您的 Logging 方法,例如:

dummy_log=wx.LogNull()

当变量dummy_log超出范围时,将再次启用正常日志记录。

于 2009-01-19T20:13:41.197 回答