Изменить метку StaticBoxSizer на wxPython

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

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

Спасибо

21.10.2009 21:08:36
1 ОТВЕТ
РЕШЕНИЕ

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

  • object -> Object -> EvtHandler -> Window -> Control -> StaticBox
  • object -> Object -> 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!")
5
6.09.2015 19:13:19