boxsizer的添加控件问题
我想要实现在面板上动态加东西,被加的panel叫panel_change,另外有个要加的panel叫panel1
panel_change和panel1都是在xrc文件中定义的
上面写了
self.panel_change = xrc.XRCCTRL(self,'panel_to_change')
self.panel1 = xrc.XRCCTRL(self,'panel1')
并且有
self.Panel_Sizer= wx.BoxSizer(wx.HORIZONTAL)
self.panel_change.SetSizer(self.Panel_Sizer)
在一个button的回调函数里写了
def OnButtonP1(self,event):
print "button p1 clicked!"
# self.Panel_Sizer.Detach(0)
self.Panel_Sizer.Add(self.panel1,0,wx.ADJUST_MINSIZE, 0)
这样我有好几个button,每个click之后都是把原来panel的删掉,新加一个,实现动态的切换.但是运行后错误提示是
Traceback (most recent call last):
File "E:\other\BuildNSIS\ipsl\test\change.py", line 37, in OnButtonP1
self.Panel_Sizer.Add(self.panel1,0,wx.ADJUST_MINSIZE, 0)
File "D:\Python25\Lib\site-packages\wx-2.7.1-msw-ansi\wx\_core.py", line 11673, in Add
return _core_.Sizer_Add(*args, **kwargs)
TypeError: wx.Window, wx.Sizer, wx.Size, or (w,h) expected for item
我看了,sizer是可以加其他控件的啊,button什么的都可以的啊,这个是因为什么?
wxPanel
Derived from
wxWindow
wxEvtHandler
wxObject
还不行吗?不都是从wxWindow继承的吗?
有没有兄弟知道的?