wxPython layout problem

py codecraig at gmail.com
Mon Jan 23 14:00:03 EST 2006


I have the following code:
[code]
class MainFrame(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, wx.ID_ANY, title,
style=wx.DEFAULT_FRAME_STYLE |wx.NO_FULL_REPAINT_ON_RESIZE)
        # build top area
        topSizer = self.buildTopPanel()
        # build input area
        inputSizer = self.buildInputPanel()

        mainSizer = wx.BoxSizer(wx.VERTICAL)
        mainSizer.Add(topSizer, 1, wx.EXPAND | wx.ALL, 5)
        mainSizer.Add(inputSizer, 1, wx.EXPAND | wx.ALL, 5)

        p = wx.Panel(self, wx.ID_ANY)
        p.SetSizer(mainSizer)

        s = wx.BoxSizer(wx.VERTICAL)
        s.Add(p, 1, wx.EXPAND)

        self.SetAutoLayout(True)
        self.SetSizer(s)
        self.Layout()

    def buildTopPanel(self):
        p = wx.Panel(self, wx.ID_ANY)
        self.text = wx.TextCtrl(p, wx.ID_ANY, style=wx.TE_MULTILINE |
wx.SUNKEN_BORDER)
        sizer = wx.BoxSizer(wx.HORIZONTAL)
        sizer.Add(self.text, 1, wx.EXPAND)
        return sizer

    def buildInputPanel(self):
        # the area to enter text
        self.text2 = wx.TextCtrl(self, wx.ID_ANY, style=wx.TE_MULTILINE
| wx.SUNKEN_BORDER)

        # panel to add button to
        p = wx.Panel(self, wx.ID_ANY)
        self.buttonClick = wx.Button(p, wx.ID_ANY, "Click")
        hsizer = wx.BoxSizer(wx.HORIZONTAL)
        hsizer.Add(self.buttonClick, 0, wx.ALIGN_CENTER)
        p.SetSizer(hsizer)

        # add the text control and button panel
        box = wx.BoxSizer(wx.HORIZONTAL)
        box.Add(self.text2, 1, wx.EXPAND)
        box.Add(p, 0, wx.EXPAND)
        return box

if __name__ == "__main__":
    app = wx.PySimpleApp()
    frame = MainFrame(None, wx.ID_ANY, "Test")
    frame.Show()
    app.MainLoop()
[/code]

....there are two problems.
1) i want the sizer (that is returned from buildTopPanel()) to fill the
screen wide/tall.  now the text control in it is very small in the
upper-left corner.

2) the scroll bars and borders on the text controls dont appear until i
mouse over them, any ideas?

thanks




More information about the Python-list mailing list