我有以下与上浆有关的代码:
import wx
class TableSelectPanel(wx.Panel):
def __init__(self, parent, *args, **kwargs):
wx.Panel.__init__(self, parent, *args, **kwargs)
self.title = wx.StaticText(self, label="Select Table")
self.tableList = wx.ListBox(self)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.title)
sizer.Add(self.tableList, flag=wx.EXPAND)
self.SetSizerAndFit(sizer)
class LobbyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None)
self.tableSelect = TableSelectPanel(self)
#window size
self.SetMinSize((800, 600))
self.SetMaxSize((800, 600))
self.SetSize((800, 600))
#sizers
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.Add(self.tableSelect, flag=wx.EXPAND)
self.SetSizer(sizer)
self.Show(True)
我期望的是,我将拥有一个800x600的窗口,其中
wx.ListBox
垂直拉伸以适合桌子的整个高度。但是,尽管我确实有800x600的窗口,但wx.ListBox
不会扩展到整个高度。相反,似乎面板确实伸展了,但是列表框却没有:我做错了什么?
最佳答案
将proportion
设置为1:
sizer.Add(self.tableList, proportion=1, flag=wx.EXPAND)
尽管此参数的含义在wxSizer中未定义,但在wxBoxSizer中使用它来指示sizer的子级是否可以在wxBoxSizer的主方向上更改其大小-其中0表示不可更改,大于0的值表示相对于同一wxBoxSizer的其他子代的值解释。例如,您可能有一个带有三个子项的水平wxBoxSizer,其中两个子项应使用sizer更改其大小。然后,两个可拉伸窗口将分别获得1的值,以使它们与尺寸调整器的水平尺寸相等地增长和收缩。