0
我有這樣的代碼:如何重新定義wx.GridSizer?
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來移除該面板並自行更新。 這就是我想要做的!
感謝提前:)
如果您告訴您正在嘗試達到的目標,可能不會提供解決方案,但會更有助於理解問題 – 2010-02-24 10:00:58
我將面板放入GridSizer中,但有一個關閉它們的選項。 當我關閉一個面板時,我想重新定義GridSizer以減少一行並移除關閉的面板。 因此,當我點擊關閉時,我會調用redefineSizer來移除該面板並自行更新。 這就是我想要做的! – 2010-02-24 12:38:59