Kivy:BoxLayout 与 GridLayout
Posted
技术标签:
【中文标题】Kivy:BoxLayout 与 GridLayout【英文标题】:Kivy: BoxLayout vs. GridLayout 【发布时间】:2013-08-15 20:13:17 【问题描述】:BoxLayout(orientation='vertical')
与GridLayout(cols=1)
:
他们都做同样的事情,不是吗?有理由选择其中一个吗?
【问题讨论】:
BoxLayout probably 在幕后要做的工作较少......但我可以想象它的边缘。所以,顺其自然吧。我个人认为垂直 boxlayout 更好地描述了它是什么。 【参考方案1】:差异涉及大小和位置。
一般来说,GridLayout
(cols: 1
) 总是将元素保持在一列中,而使用BoxLayout
时可以更灵活地组织单个小部件(orientation: 'vertical'
).
这是一个非常简单的示例,您可以使用 BoxLayout
执行某些操作,因为它支持 pos_hint
、size
和 size_hint
(以及其他例如 center_x
、x
、y
、@ 987654334@, - 注意它们还依赖于vertical
的vertical
或horizontal
方向,这会影响各个小部件:
<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
: 所以列不会缩小太多
【讨论】:
以上是关于Kivy:BoxLayout 与 GridLayout的主要内容,如果未能解决你的问题,请参考以下文章
Kivy \\ 如何将按钮绑定到 boxlayout 的底部
Kivy:如何从自定义 BoxLayout 显示 ScrollView?
Kivy ScreenManager 打破 BoxLayout