1

WxPython アプリ インスタンスを開始および停止するコマンド ライン ユーティリティがあります。コマンドを実行し続け、GUI アプリを使用できるように、アプリをスレッドで開始しています。

私の問題は、アプリを停止すると、アプリ ウィンドウにフォーカスするまでコンソールがハングし、その後閉じてしまうことです。アプリを終了するためにフォーカスが必要な理由がわかりません。

アプリ スレッドは次のようになります。

class RunAppThread(threading.Thread):
    def run(self):
        self.app = wx.App(redirect=False)
        self.frame = AppWindow(None)
        self.app.MainLoop()

    def stop(self):
        self.app.ExitMainLoop()

関連する CLI アクションは次のとおりです。

def startapp(self):
    self.app = gui.RunAppThread()
    self.app.start()

def stopapp(self):
    self.app.stop()
    self.app.join()

呼び出すのではなく、メインループを終了するためのより良い/正しい方法はありwx.App.ExitMainLoop()ますか?

4

1 に答える 1

3

を呼び出した後wx.App.ExitMainLoop、 を使用wx.WakeUpMainThreadして、イベントを処理するメイン スレッドを取得します。

于 2013-03-19T12:29:54.910 に答える