目录
布局¶
布局用于计算和分配控件的位置。
Layout 类本身不能直接使用。您应该使用以下布局类之一:
Scatter 布局:
kivy.uix.scatterlayout.ScatterLayout
理解`Widget`中的`size_hint`属性¶
size_hint 是一个由布局用于管理其子部件尺寸的元组值。它表示相对于布局尺寸的大小,而非绝对尺寸(以像素/点/厘米等为单位)。其格式为:
widget.size_hint = (width_proportion, height_proportion)
比例以0-1范围内的浮点数指定。例如,0.5代表50%,1代表100%。
如果你希望一个控件的宽度是父控件宽度的一半,而高度与父控件的高度相同,你可以这样做:
widget.size_hint = (0.5, 1.0)
如果你不想对宽度或高度使用size_hint,可以将该值设为None。例如,要创建一个宽250像素、高为父容器高度30%的控件,可以这样做:
widget.size_hint = (None, 0.3)
widget.width = 250
作为 Kivy 属性,这些也可以通过构造函数参数进行设置:
widget = Widget(size_hint=(None, 0.3), width=250)
在 1.4.1 版本发生变更: reposition_child 内部方法(误设为公开)已被移除。
- class kivy.uix.layout.Layout(**kwargs)[源代码]¶
基类:
Widget布局接口类,用于实现所有布局。更多信息请参阅模块文档。
- add_widget(widget, *args, **kwargs)[源代码]¶
将此控件添加为该控件的子控件。
- 参数:
- widget:
Widget 要添加到我们子控件列表中的控件。
- index:整数,默认为0
在列表中插入控件的索引。请注意,默认值0意味着控件被插入到列表的开头,因此会绘制在其他同级控件之上。关于索引和控件层次结构的完整讨论,请参阅 控件编程指南。
在 1.0.5 版本加入.
- canvas:字符串,默认为 None
用于添加控件画布的Canvas。可以是'before'、'after'或None(默认画布)。
在 1.9.0 版本加入.
- widget:
>>> from kivy.uix.button import Button >>> from kivy.uix.slider import Slider >>> root = Widget() >>> root.add_widget(Button()) >>> slider = Slider() >>> root.add_widget(slider)
- do_layout(*largs)[源代码]¶
当布局被触发器调用时,会调用此函数。如果你正在编写一个新的布局子类,请不要直接调用此函数,而应使用
_trigger_layout()方法。该函数默认在下一帧之前调用,因此布局不会立即更新。任何依赖于子部件位置等的操作都应安排在下一帧执行。
在 1.0.8 版本加入.
- layout_hint_with_bounds(sh_sum, available_space, min_bounded_size, sh_min_vals, sh_max_vals, hint)[源代码]¶
(内部)根据控件尺寸的(潜在)最小或最大边界,为所有控件计算合适的(尺寸)提示。
hint列表将更新为合适的尺寸。它遍历所有提示,对于任何其提示会导致违反最小或最大约束的部件,它会修正该提示。在所有部件被修正后,剩余或缺失的空间会根据它们的大小提示分配给各个部件,使其变小或变大。
该算法除了通过输入参数传递的信息外,对控件一无所知,因此它相当通用,可以根据尺寸提示按约束条件进行布局。
- 参数:
- sh_sum:浮点数
大小提示的总和(基本上是
sum(size_hint))。- available_space:浮点数
所有size hint不为None的widget可用的像素数量。不能为零。
- min_bounded_size:浮点数
根据各控件的 size_hint_min 所需的最小空间量(基本上是
sum(size_hint_min))。- sh_min_vals:列表或可迭代对象
可迭代对象中的每一项都是每个 widget 的 size_hint_min。可以为 None。长度应与
hint相同。- sh_max_vals:列表或可迭代对象
可迭代对象中的每一项是每个 widget 的 size_hint_max。可以为 None。长度应与
hint相同。- hint:列表
一个列表,其大小与
sh_min_vals和sh_min_vals的长度相同,其中每个元素是对应元素的大小提示值。此列表会被就地更新为正确的大小提示,以确保约束不被违反。
- 返回:
无。
hint会在原地更新。