panel im frame

Plattformunabhängige GUIs mit wxWidgets.
Antworten
The Spirit
User
Beiträge: 276
Registriert: Freitag 8. Juni 2007, 08:50
Wohnort: 84xxx Bereich
Kontaktdaten:

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
tordmor
User
Beiträge: 100
Registriert: Donnerstag 20. November 2008, 10:29
Wohnort: Stuttgart

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.
http://www.felix-benner.com
Antworten