Изменить метку StaticBoxSizer на wxPython
-
05-07-2019 - |
Вопрос
Есть ли способ изменить метку 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!")
Не связан с StackOverflow