wxpython:从Mainloop返回值
如果我在一个脚本中创建了一个 wx.app,并调用了 MainLoop 方法。
那么如何将一个值从 wx.app 返回到这个脚本呢?
print myApp.MainLoop()
2 个回答
1
其实,在这个框架内部,你可以通过 wx.GetApp() 来引用应用程序,这样就不需要在 MainWindow 的 init 方法里传递它了。
0
如果有办法可以直接从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()来获取这个值。