0

作成した CV ボタンや IR ボタンをクリックせずに実行ボタンを直接クリックすると、ウィンドウが閉じます。しかし、CV ボタンまたは IR ボタンをクリックしてから、Exit ボタンをクリックすると、機能しません。CV と IR ボタンの両方で app.MainLoop() を削除しようとしましたが、まだ機能していません。

p/s CV_Button と IR_Button は、GUI である別の .py ファイルを呼び出します。Pythonでメインを呼び出す方法がわかりませんが、少なくとも機能し、正しいか間違っているかさえわかりません。

def CV_Button(self, event):  # wxGlade: Main.<event_handler>
     if __name__ == "__main__":
        app = wx.PySimpleApp(0)
        wx.InitAllImageHandlers()
        MainFrame = CV(None, -1, "")
        app.SetTopWindow(MainFrame)
        MainFrame.Show()
        app.MainLoop()
     event.Skip()

def IR_Button(self, event):  # wxGlade: Main.<event_handler>
     if __name__ == "__main__":
        app = wx.PySimpleApp(0)
        wx.InitAllImageHandlers()
        MainFrame = IR(None, -1, "")
        app.SetTopWindow(MainFrame)
        MainFrame.Show()
        app.MainLoop()
     event.Skip()

def Exit_Button(self, event):  # wxGlade: Main.<event_handler>
    self.Close(True)
    event.Skip()

if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
Main = Main(None, -1, "")
app.SetTopWindow(Main)
Main.Show()
app.MainLoop()
4

1 に答える 1

1

アプリケーションごとに複数の wx.App を持つことはできません。したがって、2 つのメインループを持つこともできません。wx.App (または、非推奨ですが、wx.PySimpleApp) のインスタンスが 1 つ必要です。他のものを削除すると、おそらく機能します。

于 2012-06-05T13:18:05.980 に答える