关于python:Kivy:BoxLayout与GridLayout

Kivy: BoxLayout vs. GridLayout

BoxLayout(orientation='vertical')GridLayout(cols=1)

他们俩都做同一件事,不是吗?有理由选择一个吗?


差异涉及大小和位置。

通常,GridLayout(cols: 1)总是将元素放在一列中,而当您使用BoxLayout(orientation: 'vertical')时,组织单个小部件具有更大的灵活性。

这是您可以使用BoxLayout进行操作的一个非常简单的示例,因为它尊重pos_hintsizesize_hint(以及其他诸如center_xxyright,-请注意,它们还取决于BoxLayoutverticalhorizontal方向),这会影响各个小部件:

1
2
3
4
5
6
7
8
9
<Test@BoxLayout>:
    orientation: 'vertical'
    Button:
        text: 'a'
        size_hint: None, None
        size: 100,50
        pos_hint: { 'center_x' : .5 }
    Button:
        text: 'b'

这是200x200屏幕上的输出:

BoxLayout

GridLayout