在wxPython中使用Boxsizer

时间:2012-03-04 14:06:51

标签: python wxpython boxsizer

我正在尝试在wxPython中创建一个不太复杂的布局。首先,我使用了以下代码:

    self.environmentpnl=wx.Panel(parent=self,pos=(0,0),size=(1070,30),style=wx.BORDER_RAISED)
    self.combochoices=['Finance',
                       'Risk',
                       'Portolio Management',
                       'Reporting',
                       'Administration'
                      ]
    self.environmentbox=wx.ComboBox(self.environmentpnl,pos=(5,0),size=(200,25),choices=self.combochoices,value='<<select environment>>')
    submitbutton=wx.Button(self.environmentpnl,label='Submit',pos=(210,0),size=(80,22))
    clearbutton=wx.Button(self.environmentpnl,label='Clear',pos=(295,0),size=(80,22))
    self.Bind(wx.EVT_COMBOBOX,self.envStatus,self.environmentbox)
    self.Bind(wx.EVT_BUTTON,self.loadEnvironment,submitbutton)

    hbox1=wx.BoxSizer(wx.HORIZONTAL)
    vbox=wx.BoxSizer(wx.VERTICAL)
    hbox1.Add(self.environmentpnl,proportion=1,flag=wx.EXPAND | wx.ALL,border=0)
    vbox.Add(hbox1,flag=wx.EXPAND)

    self.mainpnl=wx.ScrolledWindow(parent=self,id=-1,size=(851,348))
    self.mainpnl.SetScrollbars(1,1,2000,2000,0,0)
    self.mainpnl.scroller=wx.lib.dragscroller.DragScroller(self.mainpnl)
    hbox2=wx.BoxSizer(wx.HORIZONTAL)
    hbox2.Add(self.mainpnl,proportion=1,flag=wx.EXPAND | wx.ALL,border=0)
    vbox.Add(hbox2,flag=wx.EXPAND)

当只有hbox1和vbox时,self.environmentpnl会根据需要水平扩展,但是只要我将self.mainpnl与其关联的hbox2一起添加,就不会再扩展了。此外,self.mainpnl与self.environmentpnl重叠。

有人能指出我出错的地方吗?我已经尝试了几天,到处读书,但无法让它工作。

感谢。 MCM

0 个答案:

没有答案