У меня есть этот код:
class SoundLog(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, size=(500, 350), *args, **kwargs)
self.SetBackgroundColour((110,110,110))
self.sizer = wx.BoxSizer(wx.VERTICAL)
pluginsNumber = len(plugins) - len(pluginsToHide)
self.gs = wx.GridSizer(pluginsNumber, 1, 0, 0)
pluginsList = self.getPluginsList()
self.gs.AddMany(pluginsList)
self.sizer.Add(self.gs, 1, wx.EXPAND)
self.SetSizer(self.sizer)
self.Centre()
self.Show(True)
Как сделать функцию, которая переопределяет определенный здесь GridSizer?
Это что-то вроде этого:
def redefineSizer(self):
self.Show(False)
pluginsNumber = len(plugins) - len(pluginsToHide)
self.gs.Clear()
self.sizer.Remove(self.gs)
self.gs = wx.GridSizer(pluginsNumber, 1, 0, 0)
print self.gs
pluginsList = self.getPluginsList()
self.gs.AddMany(pluginsList)
self.sizer.Add(self.gs, 1, wx.EXPAND)
self.SetSizer(self.sizer)
self.Centre()
self.Show(True)
или как-то так:
def redefineSizer(self):
pluginsNumber = len(plugins) - len(pluginsToHide)
self.gs.SetRows(pluginsNumber)
self.gs.Clear(deleteWindows=False)
pluginsList = self.getPluginsList()
self.gs.AddMany(pluginsList)
self.SetSizer(self.sizer)
Но я знаю (потому что это не работает), что я что-то упускаю.
Что это?
Я помещаю панели внутри GridSizer, но с возможностью их закрытия.
Когда я закрываю одну панель, я хочу переопределить GridSizer, чтобы иметь на одну строку меньше, и удалить закрытую панель.
Итак, когда я нажимаю на close, я вызываю redefineSizer, чтобы удалить эту панель и обновить себя.
Вот что я хочу сделать!
Заранее спасибо:)