Seite 1 von 1

panel im frame

Verfasst: Dienstag 13. April 2010, 06:58
von The Spirit
HI.
Ich nutze folgenden code.
was ich nicht verstehe, warum ist das panel im frame nur so klein und "wächst" nicht mit dem inhalt mit?

hier der code

Code: Alles auswählen

import wx


class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, -1, title,
                          pos=(150, 150), size=(350, 200))

        panel = wx.Panel(self)

        #controls
        text = wx.StaticText(panel, -1, "Test")
        btn = wx.Button(panel, -1, "Close")

        #bind the button events to handlers
        btn.Bind(wx.EVT_BUTTON, self.OnTimeToClose, btn)

        #set sizer
        sizer = wx.BoxSizer(wx.VERTICAL)
        # wx.GridSizer(rows, cols, vgap, hgap)
        gs = wx.GridSizer(3, 5, 2, 2)
        gs.AddMany([text,
                   btn])

        sizer.Add(gs, 1, wx.EXPAND)
        self.SetSizer(sizer)
        self.Centre()
        self.Show(True)


    def OnTimeToClose(self, evt):
        self.Close()


class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, "Auswertung")
        self.SetTopWindow(frame)
        frame.Show(True)
        return True
        
app = MyApp(0)
app.MainLoop()
danke für die hilfe

Verfasst: Dienstag 13. April 2010, 08:02
von tordmor
Weil Du bei den Sizern das panel "übersprungen" hast. wenn Du statt

Code: Alles auswählen

self.SetSizer(sizer)

Code: Alles auswählen

panel.SetSizer(sizer)
schreibst funktioniert es.