Ich arbeite gerade an einem Programm, mit einem GridSizer, habe jedochh ein Problem (siehe Bild).
Leider stehen die "Überschriften" ganz oben im Fenster, statt über den Eingabefeldern
Hier der Code:
Code: Alles auswählen
class MainFrame(wx.Frame):
def build(self, id, ein, aus, ok, bestand, tag, text, beleg, ust, gegenkonto):
self.list["checkbox_1___" + str(id)] = wx.CheckBox(self.panel_1, -1, str(id))
self.list["insert_ein___" + str(id)] = wx.TextCtrl(self.panel_1, -1, "")
self.list["insert_aus___" + str(id)] = wx.TextCtrl(self.panel_1, -1, "")
self.list["ckeckbox_2___" + str(id)] = wx.CheckBox(self.panel_1, -1, "")
self.list["label_wert_bestand___" + str(id)] = wx.StaticText(self.panel_1, -1, u"12345,67€")
self.list["spin_ctrl_1___" + str(id)] = wx.SpinCtrl(self.panel_1, -1, "0", min=1, max=31)
self.list["insert_text___" + str(id)] = wx.TextCtrl(self.panel_1, -1, "")
self.list["insert_ust_satz___" + str(id)] = wx.TextCtrl(self.panel_1, -1, "")
self.list["insert_gegenkonto___" + str(id)] = wx.TextCtrl(self.panel_1, -1, "")
self.list["insert_beleg___" + str(id)] = wx.TextCtrl(self.panel_1, -1, "")
self.Bind(wx.EVT_CHECKBOX, self.save, self.list["checkbox_1___" + str(id)])
self.Bind(wx.EVT_TEXT_ENTER, self.save, self.list["insert_ein___" + str(id)])
self.Bind(wx.EVT_TEXT_ENTER, self.save, self.list["insert_aus___" + str(id)])
self.Bind(wx.EVT_CHECKBOX, self.save, self.list["ckeckbox_2___" + str(id)])
self.Bind(wx.EVT_SPINCTRL, self.save, self.list["label_wert_bestand___" + str(id)])
self.Bind(wx.EVT_TEXT_ENTER, self.save, self.list["spin_ctrl_1___" + str(id)])
self.Bind(wx.EVT_TEXT_ENTER, self.save, self.list["insert_text___" + str(id)])
self.Bind(wx.EVT_TEXT_ENTER, self.save, self.list["insert_gegenkonto___" + str(id)])
self.Bind(wx.EVT_TEXT_ENTER, self.save, self.list["insert_beleg___" + str(id)])
self.list["checkbox_1___" + str(id)] .SetFont(wx.Font(15, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Sans Serif"))
self.list["insert_ein___" + str(id)].SetMinSize((65, 22))
self.list["insert_ein___" + str(id)].SetForegroundColour(wx.Colour(35, 142, 35))
self.list["insert_ein___" + str(id)].SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
self.list["insert_aus___" + str(id)].SetMinSize((65, 22))
self.list["insert_aus___" + str(id)].SetForegroundColour(wx.Colour(237, 0, 0))
self.list["insert_aus___" + str(id)].SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
self.list["ckeckbox_2___" + str(id)].SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
self.list["ckeckbox_2___" + str(id)].SetValue(1)
self.list["label_wert_bestand___" + str(id)].SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
self.list["spin_ctrl_1___" + str(id)].SetMinSize((55, 22))
self.list["spin_ctrl_1___" + str(id)].SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
self.list["insert_text___" + str(id)].SetMinSize((65, 22))
self.list["insert_text___" + str(id)].SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
self.list["insert_beleg___" + str(id)].SetMinSize((65, 22))
self.list["insert_beleg___" + str(id)].SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
self.list["insert_ust_satz___" + str(id)].SetMinSize((65, 22))
self.list["insert_ust_satz___" + str(id)].SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
self.list["insert_gegenkonto___" + str(id)].SetMinSize((65, 22))
self.list["insert_gegenkonto___" + str(id)].SetFont(wx.Font(12, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
self.grid_sizer_3.Add(self.list["checkbox_1___" + str(id)], 0, 0, 0)
self.grid_sizer_3.Add(self.list["insert_ein___" + str(id)], 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
self.grid_sizer_3.Add(self.list["insert_aus___" + str(id)], 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
self.grid_sizer_3.Add(self.list["ckeckbox_2___" + str(id)], 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
self.grid_sizer_3.Add(self.list["label_wert_bestand___" + str(id)], 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
self.grid_sizer_3.Add(self.list["spin_ctrl_1___" + str(id)], 0, 0, 0)
self.grid_sizer_3.Add(self.list["insert_text___" + str(id)], 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
self.grid_sizer_3.Add(self.list["insert_beleg___" + str(id)], 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
self.grid_sizer_3.Add(self.list["insert_ust_satz___" + str(id)], 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
self.grid_sizer_3.Add(self.list["insert_gegenkonto___" + str(id)], 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
def __init__(self, *args, **kwds):
self.list = {}
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.wahl_mandant = wx.Choice(self, -1, choices=["kunde1", "kunde2"])
self.wahl_datum = wx.Choice(self, -1, choices=[u"bitte wählen..."])
self.button_add = wx.BitmapButton(self, -1, wx.Bitmap("/srv/www/htdocs/umrechner/email.gif", wx.BITMAP_TYPE_ANY), style=wx.BU_AUTODRAW)
self.button_del = wx.BitmapButton(self, -1, wx.Bitmap("/srv/www/htdocs/umrechner/email.gif", wx.BITMAP_TYPE_ANY), style=wx.BU_AUTODRAW)
self.txt_start = wx.StaticText(self, -1, "STARTBETRAG:")
self.insert_start = wx.TextCtrl(self, -1, "100")
self.txt_euro = wx.StaticText(self, -1, u"€", style=wx.ALIGN_RIGHT)
self.frame_1_statusbar = self.CreateStatusBar(1, 0)
self.panel_1 = wx.ScrolledWindow(self, -1, style=wx.TAB_TRAVERSAL)
self.panel_1.SetScrollRate(10, 10)
self.__set_properties()
self.__do_layout()
#self.Bind...
def __set_properties(self):
self.SetTitle("Cashbook")
self.wahl_mandant.SetMinSize((150, 23))
self.wahl_mandant.SetSelection(0)
self.wahl_datum.SetMinSize((150, 23))
self.wahl_datum.SetSelection(0)
self.button_add.SetMinSize((60, 60))
self.button_del.SetMinSize((60, 60))
self.txt_start.SetMinSize((199, 26))
self.txt_start.SetFont(wx.Font(18, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Sans Serif"))
self.insert_start.SetMinSize((150, 26))
self.insert_start.SetFont(wx.Font(18, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Sans Serif"))
self.txt_euro.SetMinSize((26, 26))
self.txt_euro.SetFont(wx.Font(18, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "Sans Serif"))
self.frame_1_statusbar.SetStatusWidths([-1])
# statusbar fields
frame_1_statusbar_fields = ["Willkommen bei Cashbook!"]
for i in range(len(frame_1_statusbar_fields)):
self.frame_1_statusbar.SetStatusText(frame_1_statusbar_fields[i], i)
# end wxGlade
def __do_layout(self):
txt_id = wx.StaticText(self, -1, "Id")
txt_ein = wx.StaticText(self, -1, u"Ein (€)")
txt_aus = wx.StaticText(self, -1, u"Aus (€)")
txt_ok = wx.StaticText(self, -1, "OK")
txt_bestand = wx.StaticText(self, -1, "Bestand")
txt_datum = wx.StaticText(self, -1, "Tag")
txt_text = wx.StaticText(self, -1, "Text")
txt_beleg = wx.StaticText(self, -1, "Beleg")
txt_ust_satz = wx.StaticText(self, -1, "Ust. Satz (%)")
txt_gegenkonto = wx.StaticText(self, -1, "Gegenkonto")
txt_id.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
txt_ein.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
txt_aus.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
txt_ok.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
txt_bestand.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
txt_datum.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
txt_text.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
txt_beleg.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
txt_ust_satz.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
txt_gegenkonto.SetFont(wx.Font(15, wx.MODERN, wx.NORMAL, wx.BOLD, 0, "Sans"))
print("make: self.__do_layout")
sizer1 = wx.FlexGridSizer(8, 1, 5, 0); self.grid_sizer_3 = wx.FlexGridSizer(11, 10, 10, 5); self.grid_sizer_2 = wx.FlexGridSizer(1, 10, 10, 5); sizer3 = wx.FlexGridSizer(1, 3, 0, 0); sizer2 = wx.FlexGridSizer(1, 2, 0, 5)
sizer1.Add(self.wahl_mandant, 0, wx.ALIGN_RIGHT, 0)
sizer1.Add(self.wahl_datum, 0, wx.ALIGN_RIGHT, 0)
sizer1.Add((20, 20), 0, 0, 0)
sizer2.Add(self.button_add, 0, 0, 0)
sizer2.Add(self.button_del, 0, 0, 0)
sizer1.Add(sizer2, 1, 0, 0)
sizer1.Add((20, 20), 0, 0, 0)
sizer3.Add(self.txt_start, 0, 0, 0)
sizer3.Add(self.insert_start, 0, 0, 0)
sizer3.Add(self.txt_euro, 0, 0, 0)
sizer1.Add(sizer3, 1, wx.EXPAND, 0)
sizer1.Add((20, 20), 0, 0, 0)
self.grid_sizer_3.Add(txt_id, 0, 0, 0)
self.grid_sizer_3.Add(txt_ein, 0, 0, 0)
self.grid_sizer_3.Add(txt_aus, 0, 0, 0)
self.grid_sizer_3.Add(txt_ok, 0, 0, 0)
self.grid_sizer_3.Add(txt_bestand, 0, 0, 0)
self.grid_sizer_3.Add(txt_datum, 0, 0, 0)
self.grid_sizer_3.Add(txt_text, 0, 0, 0)
self.grid_sizer_3.Add(txt_beleg, 0, 0, 0)
self.grid_sizer_3.Add(txt_ust_satz, 0, 0, 0)
self.grid_sizer_3.Add(txt_gegenkonto, 0, 0, 0)
# sizer1.Add(self.grid_sizer_2, 1, wx.EXPAND, 0)
id=[]
for i in range(99):
id.append(str(i+1))
ein="123"
aus="123"
ok = True
bestand = "0"
tag = "22"
text="blabla"
beleg = "no"
ust = "no"
gegenkonto="no"
for i in range(10):
self.build(id[i], ein, aus, ok, bestand, tag, text, beleg, ust, gegenkonto)
print("made " + str(i+1) + "/10")
self.grid_sizer_3.AddGrowableCol(6)
self.panel_1.SetSizer(self.grid_sizer_3)
sizer1.Add(self.panel_1, 1, wx.EXPAND, 0)
self.SetSizer(sizer1)
sizer1.Fit(self)
sizer1.AddGrowableRow(7)#8
sizer1.AddGrowableCol(0)
...
akhof