我该如何在垂直BoxSizer中设置间距?在GridSizer中,有没有像SetVGap
这样设置单元格间垂直间隔(以像素为单位)的相似或替代方法?
我该如何在垂直BoxSizer中设置间距?在GridSizer中,有没有像SetVGap
这样设置单元格间垂直间隔(以像素为单位)的相似或替代方法?
有几种方法可以在sizer中添加空白间隔。
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(widget, proportion=0, style=wx.ALL, border=5)
上面的代码将在所有边缘添加带有5像素边框的小部件。 如果你想在两个小部件之间添加一些空间,可以采取以下任一方式:
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(widget, proportion=0, style=wx.ALL, border=5)
sizer.AddSpacer(10)
# or sizer.Add((0,0))
sizer.Add(anotherWidget, proportion=0, style=wx.ALL, border=5)
在使用sizer.Add((0,0))时的好处是,如果需要,您可以将其与比例1(一)一起添加,这将把所有后续的小部件推到底部。我使用它来更好地控制小部件的位置。
wxBoxSizer * szr = new( wxVERTICAL );
szr->AddSpacer(10);
szr = wx.BoxSizer( wxVERTICAL )
... add stuff above gap
szr.AddSpacer(10)
... add stuff below gap
wx.BoxSizer
中没有间隙参数(如你所说的GridSizers中有)。创建间隙的方法是通过设置小部件的边框。这可以使用样式wx.ALL
,wx.BOTTOM
和/或wx.TOP
来完成。szr = wx.BoxSizer(wx.VERTICAL)
szr.Add(self.button_1, 0, wx.TOP|wx.BOTTOM|wx.ALIGN_CENTER_HORIZONTAL, 5)
我会在带有5个点的上下边框的Box中添加一个居中的小部件(在我的代码中为按钮)。
如果您写入以下内容,则会显示:
vgap = 5
szr = wx.BoxSizer(wx.VERTICAL)
szr.Add(self.button_1, 0, wx.TOP, vgap)
szr.Add(self.button_2, 0, wx.TOP, vgap)
szr.Add(self.button_3, 0, wx.TOP, vgap)