Kivy BoxLayout将小部件与顶部边框对齐

Dik*_*rAz 5 python kivy

我正在使用以下Kivy代码创建带按钮的BoxLayout:

BoxLayout:
    orientation: "vertical"
    width: 200
    size_hint_x: None

    Button:
        size_hint_y: None
        height: 30
        text: 'btn1'

    Button:
        size_hint_y: None
        height: 30
        text: 'btn2'

    Button:
        size_hint_y: None
        height: 30
        text: 'btn3'
Run Code Online (Sandbox Code Playgroud)

但是按钮粘在底部边缘,我怎样才能将它们推向布局的顶部边缘?

在此输入图像描述

inc*_*ent 13

你也可以在最后放一个空的Widget来占用空间.

BoxLayout:
    orientation: "vertical"
    width: 200
    size_hint_x: None

    Button:
        size_hint_y: None
        height: 30
        text: 'btn1'

    Button:
        size_hint_y: None
        height: 30
        text: 'btn2'

    Button:
        size_hint_y: None
        height: 30
        text: 'btn3'

    Widget:
Run Code Online (Sandbox Code Playgroud)


Tot*_*tem 6

可以为此使用StackLayout,以确保按钮从上到下。

您也可以尝试在 BoxLayout 中使用填充

来自 kivy BoxLayout 文档:

布局框和子项之间的填充:[padding_left, padding_top, padding_right, padding_bottom]。

padding 还接受两个参数形式 [padding_horizo​​ntal, padding_vertical] 和一个参数形式 [padding]。

在 1.7.0 版更改:将 NumericProperty 替换为 VariableListProperty。

padding 是一个 VariableListProperty,默认为 [0, 0, 0, 0]。

例如,您的可能看起来像:

BoxLayout:
    orientation: "vertical"
    width: 200
    size_hint_x: None
    padding: 0, 0, 0, bottom_padding_here
Run Code Online (Sandbox Code Playgroud)

您将其设置为什么,以便它始终将按钮放在正确的位置,无论屏幕大小如何,都是另一回事。但我相信完全可行。

如果您稍后要添加或删除按钮,您将调整填充等。