wxSizer problem

Hello People,

I have a maximized frame which produces several panels which are wrapped by
7 BoxSizer objects. My problem is when i maximize the main frame the layout
is completely smashed. The only workaround i found yet is to put a
minimize(), maximize() pair into the code. With this manipulation the sizer
objects stretch themselves over the clientarea and the layout gets set up as
I expected. Has anybody some idea how to reach this behavior directly,
without the window manipulation code?

Thanks in advance for any help!

Thomas

Here is my code:

from wxPython.wx import *

import os.path,time

class Main(wxFrame):

    def __init__(self, parent, ID, title,sRequestResult):

        wxFrame.__init__(self, parent, ID, title, wxDefaultPosition,
wxDefaultSize)

        self.menu_File = wxMenu()

        self.menu_Config = wxMenu()

        self.menu_About = wxMenu()

        submenu = wxMenu()

        menuBar = wxMenuBar()

        self.menuBar = menuBar

        self.menuBar.Append(self.menu_File, '&Start')

        self.SetMenuBar(menuBar)

        self.menu_File.Append(1001,'create','create')

        EVT_MENU(self,1001, self.OnCreate)

    def OnCreate(self,event):

        MySize = self.GetClientSizeTuple()

        Width = MySize[0]

        Height = MySize[1]

        self.panel2 = wxPanel(self,
-1,wxPoint(wxDEFAULT),wxSize(wxDEFAULT),style=wxTAB_TRAVERSAL)

        self.panel3 = wxPanel(self, -1,wxPoint(wxDEFAULT),
wxSize(Width/2,450),style = wxTAB_TRAVERSAL)

        self.panel4 =
wxPanel(self,-1,wxPoint(wxDEFAULT),wxSize(wxDEFAULT),style=wxTAB_TRAVERSAL)

        self.panel5 = wxPanel(self, -1,wxPoint(wxDEFAULT),wxSize(2,Height))

        self.panel6 = wxPanel(self, -1,wxPoint(Width/2,0),
wxSize(wxDEFAULT),style = wxTAB_TRAVERSAL)

        self.panel7 = wxPanel(self,
-1,wxPoint(wxDEFAULT),wxSize(Width/2,450),style=wxTAB_TRAVERSAL)

        self.panel8 = wxPanel(self,
-1,wxPoint(wxDEFAULT),wxSize(wxDEFAULT),style=wxTAB_TRAVERSAL)

        self.line =wxStaticLine(self.panel5,-1,wxPoint(0) ,
wxSize(2,Height), style = wxLI_VERTICAL|wxSUNKEN_BORDER)

        LabelBaust = wxStaticText(self.panel3, -1,
'Headline1',wxPoint(Width/7,30))

        LabelSzen = wxStaticText(self.panel7, -1,
'Headline2',wxPoint(Width/6,30))

        LabelBaust.SetForegroundColour('#0F498F')

        LabelSzen.SetForegroundColour('#0F498F')

        font = wxFont(18,wxSWISS , wxNORMAL, wxNORMAL,1)

        LabelBaust.SetFont(font)

        LabelSzen.SetFont(font)

        # ------ Feldpositionen des Panel 3

···

--------------------------------------------------------------------

        Height =100

        self.Height = Height

        leftTxtWidth =100

        self.leftTxtWidth=leftTxtWidth

        rightTxtWidth =300

        self.rightTxtWidth = rightTxtWidth

        leftLabWidth =30

        rightLabWidth =230

        TxtSizeWidth=120

        TxtSizeHeight = 20

        cbSizeWidth=100

        cbSizeHeight = 20

        l20 = wxStaticText(self.panel3, -1, 'label1',pos
=(leftLabWidth,Height+5))

        t20 = wxTextCtrl(self.panel3, -1,
'string1',wxPoint(leftTxtWidth,Height),size=(TxtSizeWidth,TxtSizeHeight),
style=wxTE_READONLY|wxTE_RICH,name= 'ROAD_ID')

        l21 = wxStaticText(self.panel3, -1, 'label2',pos
=(leftLabWidth,Height+35))

        t21 = wxTextCtrl(self.panel3, -1, 'string2',
wxPoint(leftTxtWidth,Height+30),size=(TxtSizeWidth,TxtSizeHeight),style=wxTE
_READONLY|wxTE_RICH,name='FROM_TOWN')

        l22 = wxStaticText(self.panel3, -1, 'label3',pos
=(rightLabWidth,Height+35))

        t22 = wxTextCtrl(self.panel3, -1, 'string3',
wxPoint(rightTxtWidth,Height+30),size=(TxtSizeWidth,TxtSizeHeight),style=wxT
E_READONLY|wxTE_RICH,name='TO_TOWN')

        l23 = wxStaticText(self.panel3, -1, 'label4:',pos
=(leftLabWidth,Height+65))

        t23 = wxTextCtrl(self.panel3, -1, 'string4',
wxPoint(leftTxtWidth,Height+60),size=(TxtSizeWidth,TxtSizeHeight),style=wxTE
_READONLY|wxTE_RICH,name='BETWEEN')

        l24 = wxStaticText(self.panel3, -1, 'label5',pos
=(rightLabWidth,Height+65))

        t24 = wxTextCtrl(self.panel3, -1, 'string',
wxPoint(rightTxtWidth,Height+60),size=(TxtSizeWidth,TxtSizeHeight),style=wxT
E_READONLY|wxTE_RICH,name='AND')

        l25 = wxStaticText(self.panel3, -1, 'label6',pos
=(leftLabWidth,Height+95))

        t25 = wxTextCtrl(self.panel3, -1, 'string6',
wxPoint(leftTxtWidth,Height+90),size=(TxtSizeWidth,TxtSizeHeight),style=wxTE
_READONLY|wxTE_RICH,name='C_FROM_KM')

        l26 = wxStaticText(self.panel3, -1, 'label7',pos
=(rightLabWidth,Height+95))

        t26 = wxTextCtrl(self.panel3, -1, 'string',
wxPoint(rightTxtWidth,Height+90),size=(TxtSizeWidth,TxtSizeHeight),style=wxT
E_READONLY|wxTE_RICH,name='C_TO_KM')

        l27 = wxStaticText(self.panel3, -1, 'label8',pos
=(leftLabWidth,Height+155))

        t27 = wxTextCtrl(self.panel3, -1,
'string8',wxPoint(leftTxtWidth,Height+150),size=(TxtSizeWidth,TxtSizeHeight)
,style=wxTE_READONLY|wxTE_RICH ,name = 'RULE_FLAT')

        l28 = wxStaticText(self.panel3, -1, 'label9',pos
=(rightLabWidth,Height+155))

        t28 = wxTextCtrl(self.panel3, -1,
'string9',wxPoint(rightTxtWidth,Height+150),size=(TxtSizeWidth,TxtSizeHeight
),style=wxTE_READONLY|wxTE_RICH,name = 'C_REASON_FK')

        l31 = wxStaticText(self.panel3, -1, 'string10',pos
=(leftLabWidth,Height+245))

        t31 = wxTextCtrl(self.panel3, -1, '',
wxPoint(leftTxtWidth,Height+240),size=(320,60),style=wxTE_READONLY|wxTE_MULT
ILINE>wxTE_RICH,name='C_COMMENT')

        szPos =60

        rightComboLabel = wxStaticText(self.panel7, -1,
'combo1',wxPoint(szPos,Height+5),wxSize(80,20))

        self.rightCombo = wxComboBox(self.panel7, -1,
'',wxPoint(szPos+100,Height),wxSize(45,cbSizeHeight),
style=wxCB_READONLY|wxCB_SORT,name = 'SZ_ID')

        self.chkbox1=wxCheckBox(self.panel7, -1, 'chk1',
wxPoint(szPos,Height+50), style=wxNO_BORDER, name = 'SZ_VACANCES')

        self.chkbox2=wxCheckBox(self.panel7, -1, 'chk2',
wxPoint(szPos,Height+80), style=wxNO_BORDER, name = 'SZ_ACTIVITY')

        self.chkbox3=wxCheckBox(self.panel7, -1, 'chk3',
wxPoint(szPos,Height+110), style=wxNO_BORDER, name = 'SZ_WEATHER')

        self.chkbox4=wxCheckBox(self.panel7, -1, 'chk4',
wxPoint(szPos,Height+140),style=wxNO_BORDER, name = 'SZ_EQUIPMENT')

        self.chkbox5=wxCheckBox(self.panel7, -1, 'chk5',
wxPoint(szPos,Height+170), style=wxNO_BORDER, name = 'SZ_LANE_SWING')

        self.chkbox6=wxCheckBox(self.panel7, -1, 'chk6',
wxPoint(szPos,Height+200), style=wxNO_BORDER, name = 'SZ_LEFT_BLOCK')

        self.chkbox7=wxCheckBox(self.panel7, -1, 'chk7',
wxPoint(szPos,Height+230), style=wxNO_BORDER, name = 'SZ_RIGHT_BLOCK')

        l32 = wxStaticText(self.panel7, -1, 'stringx',pos
=(szPos,Height+265))

        t32 = wxTextCtrl(self.panel7, -1, 'stringx', pos
=(szPos+150,Height+260),size=(40,20),style=wxTE_RICH,name='SZ_HEAVY_VEHICLE_
ROTATION')

        l321 = wxStaticText(self.panel7, -1, '%',pos
=(szPos+195,Height+265))

        self.mainSizer = wxBoxSizer(wxHORIZONTAL)

        self.leftSizer = wxBoxSizer(wxVERTICAL)

        self.rightSizer = wxBoxSizer(wxVERTICAL)

        self.leftSizer.Add(self.panel2,1,wxEXPAND)

        self.leftSizer.Add(self.panel3,13,wxALIGN_CENTER_VERTICAL|wxEXPAND)

        self.leftSizer.Add(self.panel4,1,wxEXPAND)

        self.mainSizer.Add(self.leftSizer,1,wxEXPAND)

        self.mainSizer.Add(self.panel5,0,wxEXPAND)

        self.mainSizer.Add(self.rightSizer,1,wxEXPAND)

        self.rightSizer.Add(self.panel6,1,wxEXPAND)

        self.rightSizer.Add(self.panel7,13,wxALIGN_CENTER_VERTICAL|wxEXPAND)

        self.rightSizer.Add(self.panel8,1,wxEXPAND)

        self.SetAutoLayout(1)

        self.SetSizer(self.mainSizer)

        #~ self.Maximize(0) # uncomment this to see the right layout
directly

        #~ self.Maximize(1)

        self.mainSizer.Fit(self)

    def OnTest2(self,event):

        self.menuBar.EnableTop(1,0)

        self.ReguestSend()

        self.panel1.Show(0)

        self.CharactInitData()

class MyApp(wxApp):

    def OnInit(self):

        frame = Main(NULL ,-1, 'problem')

if __name__ == '__main__':

    import sys

    app = wxPySimpleApp()

    frame = Main(NULL ,-1, 'problem','')

    frame.Maximize(1)

    frame.Show(True)

    frame.CenterOnParent(wxBOTH)

    app.MainLoop()