0

仕事用の正規表現テストツールを作成しています。シンプルなAUIアプリケーションにしたいのですが、AUIアプリケーションのコアと思われるものをデモからコードに転送すると、起動時にクラッシュします。wxPythonログウィンドウが消える前にほんの一瞬しか見ることができず、コードはコンソールにエラーを生成しません。

これが面倒なフレームです。すべての行をコメントアウトする_mgrと、アプリケーションは正常に実行されます。

class RegexTesterFrame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(
            self, None, -1, 'Regex tester', (100, 100),
            (400, 400), wx.DEFAULT_FRAME_STYLE
        )

        self.initialize_components()
        self.CreateStatusBar()

    def initialize_components(self):
        self._mgr = wx.aui.AuiManager()
        self._mgr.SetManagedWindow(self)

        self._perspectives = []

        self._mgr.AddPane(
            wx.CheckBox(self, -1, 'test'),
            wx.aui.AuiPaneInfo().Name('Test pane').Caption('Test caption').Top()
        )

        self._mgr.Update()

        self.Bind(wx.EVT_CLOSE, self.on_close)

    def on_close(self, event):
        self._mgr.UnInit()
        del self._mgr
        self.Destroy()

これが完全なコードです(〜100行):http://pastebin.com/xZS2g1fq

そして、これが私が働いているデモです(LARGE):http: //pastebin.com/G26BMYZx

私は2つのことに興味があります。アプリケーションがクラッシュする理由と、wxPythonアプリケーションが一般的にクラッシュしたときにエラー出力が表示されない理由です。

4

1 に答える 1

0

私は昨日からこれに苦労してきましたが、いつものように、StackOverflowで質問した瞬間にわかりました。まず、stderrではなくメッセージボックスにエラー情報を出力するアプリケーションを入手しました。

def main():
    try:
        app = RegexTesterApp(True)
        app.MainLoop()
    except:
        import traceback
        xc = traceback.format_exception(*sys.exc_info())
        wx.MessageBox(''.join(xc))

次に、エラーにより、それwx.auiがインポートしていないモジュールであることが明らかになりました。インポートするとクラッシュが修正されました。

于 2012-10-11T13:34:30.773 に答える