chrisyan 发表于 2006-11-06 19:59

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继承的吗?
有没有兄弟知道的?

[ 本帖最后由 chrisyan 于 2006-11-6 20:00 编辑 ]

liangmian1 发表于 2014-07-15 15:09

不错的控件知识,感谢分享:mrgreen:
页: [1]
查看完整版本: boxsizer的添加控件问题