das ist mein erstes richtiges wxPython-Programm und ich steckt schon richtig fest. Also ich will das immer genau so viel TextFelder da sind wie in der ComboBox ausgewählt. Die TextFelder füg ich mit insertfelder ein. Beim ersten mal klapt das auch wunderbar. Nur sobald ich die Anzahl verändern will ist nur noch oben eins, ich nehm mal stark an das die dann alle übereinander sind. Ich find aber nicht wirklich nen Fehler.
Hier der Code:
Code: Alles auswählen
class hauptframe(wx.Frame):
def __init__(self):
self.ordner = []
wx.Frame.__init__(self, None, -1, "TagTeil.py", wx.DefaultPosition, wx.DefaultSize)
self.vertsizer = wx.BoxSizer(wx.VERTICAL)
moeglichkeiten = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "12", "15", "20"]
self.combo = wx.ComboBox(self, 2, size=(70, -1), choices=moeglichkeiten)
self.vertsizer.Add(wx.StaticText(self, -1, "Startpfad:"), 0, wx.ALIGN_CENTER_HORIZONTAL)
self.startpfad = wx.TextCtrl(self, -1, size=(300, -1))
self.vertsizer.Add(self.startpfad, 0, wx.ALIGN_CENTER_HORIZONTAL)
self.vertsizer.Add(wx.StaticText(self, -1, "Anzahl der Ordner:"), 0, wx.ALIGN_CENTER_HORIZONTAL)
self.vertsizer.Add(self.combo, 0, wx.ALIGN_CENTER_HORIZONTAL)
self.panel = wx.Panel(self, -1)
self.vertsizer.Add(self.panel, 0, wx.ALIGN_CENTER_HORIZONTAL)
self.panelsizer = wx.BoxSizer(wx.VERTICAL)
self.vertsizer.Add(wx.Button(self, 1, "Datei Erzeugen"), 0, wx.ALIGN_CENTER_HORIZONTAL)
self.SetSizer(self.vertsizer)
self.combo.SetSelection(4)
self.insertfelder(5)
self.Bind(wx.EVT_BUTTON, self.start, id=1)
self.Bind(wx.EVT_COMBOBOX, self.combostart, id=2)
def combostart(self, event):
self.insertfelder(int(self.combo.GetValue()))
def start(self):
pass
def insertfelder(self, zahl):
for i in self.ordner:
self.panelsizer.Remove(i)
i.Destroy()
self.ordner = []
self.panel.SetSizer(self.panelsizer)
for z in range(zahl):
tc = wx.TextCtrl(self.panel, -1, size=(300, -1))
self.panelsizer.Add(tc, 0)
self.ordner.append(tc)
print z
self.panel.SetSizer(self.panelsizer)
pythonist