wxPython sizer метод родительского класса wxGridSizer странно недоступен - PullRequest
0 голосов
/ 18 июля 2009

У меня проблема с инструментарием wxPython. Я использую объект wx.GridSizer для размещения сетки, отображающей некоторую информацию о состоянии. Мне нужно обновить эту сетку, и поэтому я придумал несколько разных способов сделать это. Я предпочитаю просто обновить / обновить текст, который требует обновления, поэтому я мог бы попытаться отсоединить объект wxStaticText от sizer, переписать его новым объектом wxStaticText и вставить объект обратно в sizer с его предыдущим индексом.

Лучший способ - использовать родительский класс wxGridSizer, wxSizer, у которого есть метод под названием «Заменить», который позволит мне заменить элемент в виджете, не вынимая его и вставляя его обратно. Гораздо больше пятно нет? Ну, я получаю очень странную ошибку при попытке использовать этот метод. Вот код с последующей ошибкой:

    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?

1 Ответ

0 голосов
/ 18 июля 2009

По какой причине вы не можете использовать wx.StaticText.SetLabel("New label") для обновления текста?

...