從xrc文件中加載對象及所有子對象。 def LoadXrcObjectChild(ctl,rctl=None): n=ctl.GetName() if not rctl: rctl=ctl else: rctl.__dict__[n]=ctl if hasattr(ctl,'Children'): for c in ctl.Children: LoadXrcObjectChild(c,rctl) def LoadXrcObject(xrcfile,parent,objectname,classname): rc=wx.xrc.XmlResource(xrcfile) obj=rc.LoadObject(parent,objectname,classname) if obj: LoadXrcObjectChild(obj) return obj 下面是使用例子,將xrc文件login.xrc載入,裡面至少包含名稱為btOK,btCancel的wx控件對象。 加載後返回對象,如果為None則加載失敗。 def doLogin(self): dlg=LoadXrcObject('login.xrc',self,'dlgLogin','wxDialog') dlg.btOk.SetId(wx.ID_OK) dlg.btOk.Bind(wx.EVT_BUTTON,self.OnLogin) dlg.btCancel.SetId(wx.ID_CANCEL) dlg.Fit() dlg.CenterOnScreen() if dlg.ShowModal()==wx.ID_CANCEL: r=False else: r=True dlg.Destroy() return r