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

时间:2009-07-18 04:53:25

标签: wxpython oop sizer

我遇到了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可以成功调用其父类的方法(继承,子类)插入。

那么为什么我不能以类似的方式调用方法替换?

1 个答案:

答案 0 :(得分:0)

您有什么理由不能使用wx.StaticText.SetLabel("New label")更新文字吗?