Wxpython-如何扩展StaticBoxSizer?

时间:2019-02-07 13:31:50

标签: python python-3.x user-interface wxpython

我有一个GUI,我想在其中使用StaticBoxes。但是我希望它们在窗口的整个垂直高度上扩展。我尝试过使用StaticBoxSizers,但是它们不会扩展。

我需要更改什么?

    hbox2 = wx.BoxSizer(wx.HORIZONTAL)        
    vbox2 = wx.BoxSizer(wx.VERTICAL)

    leftPanel = wx.Panel(panel) 

    box = wx.StaticBox(leftPanel, wx.ID_ANY, "testBox", size=(0,100))
    text = wx.StaticText(leftPanel, wx.ID_ANY, "This is a test")
    boxSizer = wx.StaticBoxSizer(box, wx.VERTICAL)
    boxSizer.Add(text, proportion = 1, flag=wx.ALIGN_CENTER)

    box2 = wx.StaticBox(leftPanel, wx.ID_ANY, "testBox", size=(0,100))
    text2 = wx.StaticText(leftPanel, wx.ID_ANY, "This is a test")
    boxSizer2 = wx.StaticBoxSizer(box2, wx.VERTICAL)
    boxSizer2.Add(text2, proportion = 2, flag=wx.ALIGN_CENTER)  

    vbox2.Add(boxSizer, 50, wx.EXPAND | wx.TOP, 3)
    vbox2.Add(boxSizer2, 50, wx.EXPAND | wx.TOP, 3)

    leftPanel.SetSizer(vbox2, wx.EXPAND)

    hbox2.Add(leftPanel) 

1 个答案:

答案 0 :(得分:1)

添加到proportion的{​​{1}}标志设置为50时,这是错误的。
尝试将它们都设置为1。

vbox2
  

添加(窗口,比例= 0,标志= 0,边框= 0,userData =无)   将一个子项追加到sizer。

参数: 窗口–要添加到定尺寸器中的窗口,垫片或其他定尺寸器。它的初始大小(由用户明确设置或内部计算)被解释为最小大小,在许多情况下也被解释为初始大小。 比例(int)–在wx.BoxSizer中使用此参数来指示sizer的子级是否可以沿wx.BoxSizer的主方向更改其大小-其中0表示不可更改,并且解释大于零的值相对于同一wx.BoxSizer的其他子项的值。例如,您可能有一个带有三个子项的水平wx.BoxSizer,其中两个子项应使用sizer更改其大小。然后,两个可拉伸窗口的值将分别为1,以使其与尺寸调整器的水平尺寸相等地增长和收缩。 flag(int)-影响sizer行为的标志的OR或组合。 border(int)–确定边框宽度,如果将flag参数设置为包括任何边框标志。 userData(对象)–允许在大小调整器项上附加一个对象,以便在尺寸调整信息比比例和标志所允许的复杂得多时在派生类中使用。 返回类型:
wx.SizerItem