如何在垂直BoxSizer中设置gap?Vertival BoxSizer中的什么? GridSizer中类似或替代的SetVGap
(设置sizer中单元格之间的垂直间隙(以像素为单位))方法?
发布于 2011-10-05 00:03:21
有几种方法可以在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)的比例添加它,这将把下面所有的小部件都推到底部。我使用它来让我对小部件的放置有更多的控制。
发布于 2011-10-04 20:36:28
我想你的意思是一个垂直的盒子大小,就像这样
wxBoxSizer * szr = new( wxVERTICAL );
下面的调用将添加10个像素的“垂直间距”
szr->AddSpacer(10);
在Python中,我猜它应该是这样的
szr = wx.BoxSizer( wxVERTICAL )
... add stuff above gap
szr.AddSpacer(10)
... add stuff below gap
发布于 2011-10-04 22:28:36
在wx.BoxSizer
中没有gap参数(是否如您所说的在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来控制插槽之间的间隔。
正如其他答案所指出的,您也可以在您的小部件之间插入分隔符以获得相同的效果,但在我看来,如果您想要的是与grids vgap等效的东西,这似乎更清晰(没有额外的"sizer.add“行)。
https://stackoverflow.com/questions/7647760
复制相似问题