如果我在脚本中创建一个wx.app并调用方法MainLoop 如何从wx.app返回一个值到脚本?
print myApp.MainLoop()
答案 0 :(得分:1)
实际上,在框架内你可以使用wx.GetApp()引用应用程序,因此无需通过MainWindow的 init 传递它
答案 1 :(得分: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()来检索该值。