BoxLayout(orientation='vertical')
与GridLayout(cols=1)
:
他们都做同样的事,不是吗?是否有理由选择其中一个?
答案 0 :(得分:12)
差异涉及规模和位置。
一般情况下, GridLayout
(cols: 1
)始终将元素保留在一列中,而可以更灵活地组织单个小部件使用BoxLayout
(orientation: 'vertical'
)。
以下是您可以使用BoxLayout
执行某项操作的简单示例,因为它尊重pos_hint
,size
和size_hint
(以及center_x
之类的其他内容,x
,y
,right
, - 请注意,它们还取决于影响个人的vertical
或horizontal
方向BoxLayout
窗口小部件:
<Test@BoxLayout>:
orientation: 'vertical'
Button:
text: 'a'
size_hint: None, None
size: 100,50
pos_hint: { 'center_x' : .5 }
Button:
text: 'b'
这是200x200屏幕中的输出:
如果您尝试执行相同操作,但使用GridLayout
,则可以获得此信息:
最后,GridLayout
有一些属性来控制列的大小:
col_default_width
:代表所有列的默认宽度col_width
:每列的宽度列表(在此无用)
因为我们只有一个)col_force_default
:会忽略任何现有的size_hint
或size
个别小部件并强制列宽minimum_width
:所以列不会缩小太多