ich habe schon die nächste Frage.

Ich erstelle in einer Oberfläche verschiedene Elemente über eine Schleife. Wie kann ich später auf diese Elemente zugreifen? Ich muss dort eingegebene Daten auslesen und auch vorhandene Daten in die Elemente setzen können. Weiterhin gibt es verschiedene Abhängigkeiten zwischen den Elementen einer Zeile (z.B. Wird in der ChoiceBox "zwei" ausgewählt, muss das Feld "fz" aktiv sein).
Die Anzahl der Zeilen ist variabel. Wenn bei der Dateneingabe die Zeilen nicht ausreichen, werden neue hinzugefügt.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import wx
wx.SetDefaultPyEncoding("iso-8859-15")
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, 'Test', size=(800, 800))
self.panel = wx.Panel(self)
self.mainsizer = wx.BoxSizer(wx.VERTICAL)
self.panel.SetSizer(self.mainsizer)
setButton = wx.Button(self.panel, -1, 'Daten laden')
getButton = wx.Button(self.panel, -1, 'Daten ausgeben')
self.Bind(wx.EVT_BUTTON, self.setData, setButton)
self.Bind(wx.EVT_BUTTON, self.getData, getButton)
self.mainsizer.Add(setButton)
self.mainsizer.Add(getButton)
for row in range(20):
self.setNewRow(row)
def setNewRow(self, row):
worktypes = ['', 'eins', 'zwei', 'drei']
nr = wx.StaticText(self.panel, -1, str(row), size=(30, 25), style=wx.BOTTOM)
tp = wx.Choice(self.panel, -1, size=(100, 25), choices=worktypes)
start = wx.TextCtrl(self.panel, -1, '', size=(50, 25))
end = wx.TextCtrl(self.panel, -1, '', size=(50, 25))
txt = wx.TextCtrl(self.panel, -1, '', size=(70, 25))
_from = wx.TextCtrl(self.panel, -1, '', size=(50, 25))
to = wx.TextCtrl(self.panel, -1, '', size=(50, 25))
fz = wx.CheckBox(self.panel, -1, '', size=(30, 25))
paid100 = wx.RadioButton(self.panel, -1, '', style=wx.RB_GROUP, size=(25, 25))
paid50 = wx.RadioButton(self.panel, -1, '', size=(30, 25))
paid25 = wx.RadioButton(self.panel, -1, '', size=(30, 25))
paid0 = wx.RadioButton(self.panel, -1, '', size=(30, 25))
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(nr)
sizer.Add(tp)
sizer.Add(start)
sizer.Add(end)
sizer.Add(txt)
sizer.Add(_from)
sizer.Add(to)
sizer.Add((10, 10))
sizer.Add(fz)
sizer.Add((10, 10))
sizer.Add(paid100)
sizer.Add((10, 10))
sizer.Add(paid50)
sizer.Add((10, 10))
sizer.Add(paid25)
sizer.Add((10, 10))
sizer.Add(paid0)
self.mainsizer.Add(sizer)
def setData(self, event=None):
pass
def getData(self, event=None):
pass
def main():
app = wx.PySimpleApp()
frame = MainFrame()
frame.Show()
app.MainLoop()
if __name__ == '__main__':
main()
Mawilo