在这里,您有一个简单的示例,说明了两个框架之间的通信:
诀窍在于发送对象引用以在帧之间共享,或者在另一个内部创建一个对象(如本例所示),或者通过一个公共父对象。代码是:
import wxclass Mainframe(wx.frame): def __init__(self): wx.frame.__init__(self, None, size=(150,100), title='Mainframe') pan =wx.Panel(self) self.txt = wx.TextCtrl(pan, -1, pos=(0,0), size=(100,20), style=wx.DEFAULT) self.but = wx.Button(pan,-1, pos=(10,30), label='Tell child') self.Bind(wx.EVT_BUTTON, self.onbutton, self.but) self.child = Childframe(self) self.child.Show() def onbutton(self, evt): text = self.txt.GetValue() self.child.txt.write('Parent says: %s' %text)class Childframe(wx.frame): def __init__(self, parent): wx.frame.__init__(self, None, size=(150,100), title='Childframe') self.parent = parent pan = wx.Panel(self) self.txt = wx.TextCtrl(pan, -1, pos=(0,0), size=(100,20), style=wx.DEFAULT) self.but = wx.Button(pan,-1, pos=(10,30), label='Tell parent') self.Bind(wx.EVT_BUTTON, self.onbutton, self.but) def onbutton(self, evt): text = self.txt.GetValue() self.parent.txt.write('Child says: %s' %text)if __name__ == "__main__": App=wx.PySimpleApp() Mainframe().Show() App.MainLoop()


