堆叠布局

_images/stacklayout.gif

在 1.0.5 版本加入.

StackLayout 会垂直或水平排列子组件,尽可能多地容纳布局所能容纳的数量。各个子组件部件的大小不必统一。

例如,要显示宽度逐渐增大的控件::

root = StackLayout()
for i in range(25):
    btn = Button(text=str(i), width=40 + i * 5, size_hint=(None, 0.15))
    root.add_widget(btn)
_images/stacklayout_sizing.png
class kivy.uix.stacklayout.StackLayout(**kwargs)[源代码]

基类:Layout

堆叠布局类。更多信息请参阅模块文档。

do_layout(*largs)[源代码]

当布局被触发器调用时,会调用此函数。如果你正在编写一个新的布局子类,不要直接调用此函数,而应使用 _trigger_layout() 方法。

该函数默认在下一帧之前调用,因此布局不会立即更新。任何依赖于子组件位置等的操作都应安排在下一帧执行。

在 1.0.8 版本加入.

minimum_height

包含所有子部件所需的最小高度。该值由布局自动设置。

在 1.0.8 版本加入.

minimum_height 是一个 kivy.properties.NumericProperty,默认值为 0。

minimum_size

包含所有子部件所需的最小尺寸。该尺寸由布局自动设置。

在 1.0.8 版本加入.

minimum_size 是 (minimum_width, minimum_height) 属性的 ReferenceListProperty

minimum_width

包含所有子部件所需的最小宽度。该值由布局自动设置。

在 1.0.8 版本加入.

minimum_width 是一个 kivy.properties.NumericProperty,默认值为 0。

orientation

布局的方向。

orientation 是一个 OptionProperty,默认值为 'lr-tb'。

有效的方向为'lr-tb'、'tb-lr'、'rl-tb'、'tb-rl'、'lr-bt'、'bt-lr'、'rl-bt'和'bt-rl'。

在 1.5.0 版本发生变更: orientation 现在能正确处理 'lr'、'rl'、'tb'、'bt' 的所有有效组合。在此版本之前,仅支持 'lr-tb' 和 'tb-lr',且 'tb-lr' 命名有误,实际将控件从底部到顶部、从右到左排列(与预期相反)。

备注

'lr' 表示从左到右。'rl' 表示从右到左。'tb' 表示从上到下。'bt' 表示从下到上。

padding

布局框与其子项之间的内边距:[padding_left, padding_top, padding_right, padding_bottom]。

padding 也接受双参数形式 [padding_horizontal, padding_vertical] 和单参数形式 [padding]。

在 1.7.0 版本发生变更: 将NumericProperty替换为VariableListProperty。

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

spacing

子控件之间的间距:[水平间距,垂直间距]。

spacing 也接受单参数形式 [spacing]。

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