Вопрос

Есть ли способ изменить метку StaticBoxSizer на wxPython после инициализации?

Я не смог найти ничего в документации по wxPython.

Спасибо

Это было полезно?

Решение

Когда вы создаете wx.StaticBoxSizer , вы должны передать ему wx.StaticBox в качестве первого аргумента инициализатора, это то, что вам нужно изменить, чтобы изменить этикетка. Если вы посмотрите на иерархии классов, они выглядят следующим образом:

  • объект - > Объект - > EvtHandler - > Окно - > Контроль - > StaticBox
  • объект - > Объект - > Sizer - > BoxSizer - > StaticBoxSizer

Как вы уже поняли, SetLabel не является методом sizer или какого-либо из его родителей, он вместо этого живет в классе Control, поэтому блок наследует его.

# creating the static box sizer
self.my_box = wx.StaticBox(self.panel, wx.ID_ANY, "Spam, spam, spam")
self.sizer_static_box = wx.StaticBoxSizer(self.my_box)

# then do something like this later        
self.my_box.SetLabel("I hate spam!")
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top