Я бы хотел изменить изображение кнопки в wx Python. Я могу скрыть и удалить кнопку, но когда я пытаюсь снова добавить кнопку в то же место, она появляется не в том месте. Чего мне не хватает?
Детали: я создаю класс для wx.Panel. У класса есть конструктор. В классе есть две кнопки. Когда вы нажимаете первую кнопку, вторая кнопка скрывается, а затем удаляется из классификатора. Когда первая кнопка нажата, вызывается функция «clicked ()». Функция «clicked ()» сначала скрывает кнопку, которую нужно удалить, а затем удаляет ее из классификатора. Когда функция «clicked ()» пытается добавить еще одну кнопку в то же место, где находилась вторая кнопка, в верхней части пользовательского интерфейса появляется новая кнопка.
Я хотел бы, чтобы новая кнопка была помещен в то же место, что и старый. Как мне это сделать?
class Panel(wx.Panel):
def __init__(self, parent):
super(Panel, self).__init__(parent)
self.sizer = wx.GridBagSizer(11, 14)
self.button01 = wx.Button(self, label="01")
self.sizer.Add(self.button01, pos=(2, 0))
self.Bind(wx.EVT_BUTTON, self.clicked, self.button01)
self.pic = wx.Bitmap("light.jpg", wx.BITMAP_TYPE_ANY)
self.buttonpic = wx.BitmapButton(self, -1, self.pic)
self.sizer.Add(self.buttonpic, pos=(3, 1), flag=wx.LEFT, border=10)
self.sizer.AddGrowableCol(2)
self.SetSizer(self.sizer)
self.sizer.Fit(self)
def clicked(self, event):
self.sizer.Hide( 2 )
self.sizer.Remove( 2 )
self.pic = wx.Bitmap("dark.jpg", wx.BITMAP_TYPE_ANY)
self.buttonpic = wx.BitmapButton(self, -1, self.pic)
self.sizer.Add(self.buttonpic, pos=(3, 1), flag=wx.LEFT, border=10)
event.Skip()
Редактировать: Мне пришлось удалить много кода из исходного кода, чтобы StackOverflow мог принять мой вопрос, поэтому целое число, данное Функции Hide () и Remove () могут быть некорректны в этом примере, но скрытие и удаление кнопки работает в исходном коде без ошибок.