Seite 1 von 1

wx.GridSizer Position

Verfasst: Sonntag 15. Januar 2012, 13:10
von akhof
Hallo!
Ich arbeite gerade an einem Programm, mit einem GridSizer, habe jedochh ein Problem (siehe Bild).

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)
       ...
Ich habe wirklich keine Ahnung, was das sein könnte :K

akhof

Re: wx.GridSizer Position

Verfasst: Sonntag 15. Januar 2012, 13:30
von BlackJack
@akhof: Vielleicht ein Grund sich Tabellen-Widgets nicht selbst zu basteln, sondern die zu nehmen, die schon vorhanden sind. ;-)

Ansonsten wirst Du wahrscheinlich irgendwo bei den Sizern etwas durcheinander gebracht haben.

Re: wx.GridSizer Position

Verfasst: Sonntag 15. Januar 2012, 14:38
von akhof
BlackJack hat geschrieben:@akhof: Vielleicht ein Grund sich Tabellen-Widgets nicht selbst zu basteln, sondern die zu nehmen, die schon vorhanden sind. ;-)

Ansonsten wirst Du wahrscheinlich irgendwo bei den Sizern etwas durcheinander gebracht haben.
hab ich mir auch schon gedacht, habe aber seit tagen gesucht und nichts gefunden. - die frage war ja, obe einer von Euch eine idee hat, wo dieser fehler liegen könnte...

akhof