我有这段代码:
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以减少一行并删除关闭的面板。
因此,当我点击关闭时,我会调用redefineSizer删除该面板并自行更新。 这就是我想做的事情!
提前致谢:)