wxPython sizer wxGridSizer';的父类方法奇怪地无法访问

wxPython sizer wxGridSizer';的父类方法奇怪地无法访问,wxpython,oop,sizer,Wxpython,Oop,Sizer,我对wxPython工具包有问题。我正在使用wx.GridSizer对象放置一个显示一些状态信息的网格。我需要更新这个网格,所以我想出了几种不同的方法。我更喜欢的方法是简单地刷新/更新需要更新的文本,这样我就可以尝试从sizer中分离wxStaticText对象,用一个新的wxStaticText对象覆盖它,并将该对象插入到sizer的上一个索引处 更好的方法是使用wxGridSizer的父类wxSizer,它有一个名为“Replace”的方法,该方法允许我替换小部件中的项,而无需将其取出并插入

我对wxPython工具包有问题。我正在使用wx.GridSizer对象放置一个显示一些状态信息的网格。我需要更新这个网格,所以我想出了几种不同的方法。我更喜欢的方法是简单地刷新/更新需要更新的文本,这样我就可以尝试从sizer中分离wxStaticText对象,用一个新的wxStaticText对象覆盖它,并将该对象插入到sizer的上一个索引处

更好的方法是使用wxGridSizer的父类wxSizer,它有一个名为“Replace”的方法,该方法允许我替换小部件中的项,而无需将其取出并插入。更圆滑不?当我尝试使用这个方法时,我得到了一个非常奇怪的错误。以下是错误代码:

    self.info_sizer.Replace(self.project_value, wx.StaticText(self, wx.ID_ANY, project))

    self.info_sizer.Replace(self.project_value, wx.StaticText(self, wx.ID_ANY, project))
AttributeError: 'GridSizer' object has no attribute 'Replace'
因此,突然更换不是一种选择。请记住,我前面提到的Insert方法是sizer的父类wxSizer的方法。因此,我使用的sizer wxGridSizer可以成功地调用其父类的方法(继承的、子类的)Insert


那么,为什么我不能以类似的方式调用Replace方法呢?

为什么你不能使用
wx.StaticText.SetLabel(“新标签”)
来更新文本呢?

我想我已经看过这个类了,找到了一个解决方案。我一定错过了那个方法。我最近对这件事感到很不安。好的,谢谢你!这是一个很好的解决方案,但如果知道wny我无法访问父类方法,那就太好了。。我可以用一个,但不能用另一个。神秘的是,除非我做了一些非常明显的错误,否则对我来说已经很晚了。你是wx.GridSizer的子类吗?其中有这样一条评论:“如果您希望在wxPython中创建自定义sizer类,那么您应该从wx.PySizer派生该类,以便为各种虚拟方法获得Python感知功能。”