Einträge in wx.GridSizer dynamisch ändern
Verfasst: Mittwoch 30. Dezember 2009, 17:37
Hallo,
ich möchte die Anzahl der Einträge in einem wx.GridSizer dynamisch ändern. Leider weiß ich nicht, wie dies zu bewerkstelligen ist. Z. B. soll im Folgenden Code beim Drücken der Schaltfläche "1" die Anzahl der Einträge von 80 auf z.B. 30 verringert werden.
Danke schon einmal.
ich möchte die Anzahl der Einträge in einem wx.GridSizer dynamisch ändern. Leider weiß ich nicht, wie dies zu bewerkstelligen ist. Z. B. soll im Folgenden Code beim Drücken der Schaltfläche "1" die Anzahl der Einträge von 80 auf z.B. 30 verringert werden.
Danke schon einmal.
Code: Alles auswählen
import wx
import wx.lib.buttons
class MyFrame(wx.Frame):
"""make a frame, inherits wx.Frame"""
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, 'wxButton', size=(500,500))
self.SetBackgroundColour("lightgrey")
vSizer = wx.BoxSizer(wx.VERTICAL)
sb = wx.StaticBox(self, -1, '')
hSizer1 = wx.StaticBoxSizer(sb, wx.HORIZONTAL)
self.hGridSizer = wx.GridSizer(10, 8, 1, 1)
hSizer2 = wx.Gauge(self, -1, 100, size = (0,12))
self.b = []
for i in range(0,10*8):
self.b.append([])
self.b[i] = wx.lib.buttons.GenToggleButton(self,-1,str(i), style=wx.NO_BORDER | wx.EXPAND)
self.hGridSizer.Add(self.b[i], 0, wx.EXPAND)
hSizer3 = wx.BoxSizer(wx.HORIZONTAL)
btnCfg = wx.Button(self, -1, '1')
btnGo = wx.Button(self, -1, '2')
btnDone = wx.Button(self, -1, '3')
empty = wx.StaticText(self, -1, ' ')
hSizer3.Add(btnCfg)
hSizer3.Add(empty)
hSizer3.Add(btnGo)
hSizer3.Add(btnDone)
hSizer1.Add(self.hGridSizer, wx.EXPAND)
vSizer.Add(hSizer1, flag = wx.ALL | wx.BORDER | wx.EXPAND, border = 5)
vSizer.Add(hSizer2, flag = wx.ALL | wx.BORDER | wx.EXPAND, border = 10 )
vSizer.Add(hSizer3, flag = wx.ALIGN_CENTER_HORIZONTAL | wx.ALL | wx.BORDER, border = 5 )
self.SetSizer(vSizer, wx.EXPAND)
self.Fit()
self.SetMinSize(self.GetSize())
btnCfg.Bind(wx.EVT_LEFT_DOWN, self.NewOrder)
self.Show(True)
def NewOrder(self,event):
self.hGridSizer.SetCols(3)
#self.hGridSizer.Destroy()
#self.hGridSizer = wx.GridSizer(5,3)
self.SetMinSize((0,0))
self.Fit()
self.SetMinSize(self.GetSize())
self.b[0].SetLabel('new')
application = wx.PySimpleApp()
# call class MyFrame
window = MyFrame()
# start the event loop
application.MainLoop()
Code: Alles auswählen