4

ユーザー インターフェイスに wxPython ライブラリを使用して、Python で作成しているアプリケーションのメニューをコーディングしています。いくつかのメニュー項目にアイコンを追加しようとしています。私はそれについて良心的になろうとしているので、参照されている画像ファイルの 1 つが存在しない場合の損害を制限しようとしています。(私の考えでは) 最も簡単な方法は、例外を使用することです。

問題は、存在しないファイルにリンクすると、例外がスローされないことです。代わりに、次のような恐ろしいメッセージ ボックスが表示されます。

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 Google検索でできる最善のimg2pyことは、wxPythonに付属のモジュールを使用してすべての画像をpythonコードに変換することをお勧めすることでしたが、私がやっていることのために画像を画像形式のままにしておくことをお勧めします。

4

1 に答える 1

3

これは既知の問題です。Robin Dunnが数回答えました: Logging メソッドを作成するだけです。

dummy_log=wx.LogNull()

変数dummy_logが範囲外になると、通常のログが再び有効になります。

于 2009-01-19T20:13:41.197 に答える