wxpython:来自Mainloop的返回值

wxpython:来自Mainloop的返回值,python,wxpython,Python,Wxpython,如果我在脚本中创建wx.app并调用MainLoop方法。 如何将值从wx.app返回到脚本 print myApp.MainLoop() 如果有一种方法可以从wx.Frame中直接访问wx.App对象,我不知道它是什么,所以我可能是用一种很难的方法来实现的: class MainWindow(wx.Frame): def __init__(self, parent, id, title, app): wx.Frame.__init__(self, parent, i

如果我在脚本中创建wx.app并调用MainLoop方法。
如何将值从wx.app返回到脚本

 print myApp.MainLoop()

如果有一种方法可以从wx.Frame中直接访问wx.App对象,我不知道它是什么,所以我可能是用一种很难的方法来实现的:

class MainWindow(wx.Frame):
    def __init__(self, parent, id, title, app):
        wx.Frame.__init__(self, parent, id, title)
        self.app = app
        #...

class CustomApp(wx.App):
    def __init__(self):
        wx.App.__init__(self)
        self.value = None

    def SetValue(self, value):
        self.value = value

    def GetValue(self):
        return self.value


app = CustomApp()
frm = MainWindow(None, wx.ID_ANY, "Main Window", app)
frm.Show()
app.MainLoop()

print(app.GetValue())

通过对应用程序的引用,您可以在帧内的任何位置调用self.app.SetValue(),然后在主循环完成后调用app.GetValue()来检索值。

实际上,您可以在帧内使用wx.GetApp()引用应用程序因此,无需通过主窗口的init将其传入