如何在Vertical BoxSizer中设置差距? Vertival BoxSizer中的SetVGap
的相似或替代方法是什么(它在GridSizer中设置sizer中单元格之间的垂直间隙(以像素为单位))?
答案 0 :(得分:9)
有几种方法可以在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(一)的比例,这会将以下所有小部件推到底部。我用它来给我一点控制小部件的位置。
答案 1 :(得分:5)
我认为你的意思是一个垂直的盒子大小,就像这样
wxBoxSizer * szr = new( wxVERTICAL );
以下调用将添加10个像素的“垂直间隙”
szr->AddSpacer(10);
在Python中,我猜它看起来像这样
szr = wx.BoxSizer( wxVERTICAL )
... add stuff above gap
szr.AddSpacer(10)
... add stuff below gap
答案 2 :(得分:4)
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)
将在Box中添加一个居中的小部件(我的代码中的一个按钮),顶部和底部有5个点边框。
显示您是否写道:
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)
你得到的3个按钮与SetVGap
的按钮相似,你可以通过设置vgap控制插槽之间的分隔。
正如其他答案所示,您也可以在小部件之间插入分隔符以获得相同的效果,但这似乎更清晰(没有附加的“sizer.add”行),如果您想要的是与网格vgap相同的东西。
答案 3 :(得分:2)
也可能很有趣:在
中找到标题“wx.BoxSizer”