浮动布局

FloatLayout 遵循其子部件的 pos_hintsize_hint 属性。

_images/floatlayout.gif

例如,创建一个大小为(300,300)的FloatLayout::

layout = FloatLayout(size=(300, 300))

默认情况下,所有控件的size_hint=(1, 1),因此该按钮将采用与布局相同的尺寸:

button = Button(text='Hello world')
layout.add_widget(button)

要创建一个占布局宽度50%、高度25%,并位于(20, 20)位置的按钮,您可以这样做:

button = Button(
    text='Hello world',
    size_hint=(.5, .25),
    pos=(20, 20))

如果你想创建一个按钮,其大小始终为布局尺寸减去每侧20%,可以这样做:

button = Button(text='Hello world', size_hint=(.6, .6),
                pos_hint={'x':.2, 'y':.2})

备注

此布局可用于应用程序。大多数情况下,您将使用Window的大小。

警告

如果你没有使用pos_hint,就必须自行处理子控件的定位:如果浮动布局在移动,你也需要同时移动子控件。

class kivy.uix.floatlayout.FloatLayout(**kwargs)[源代码]

基类:Layout

浮动布局类。更多信息请参阅模块文档。

add_widget(widget, *args, **kwargs)[源代码]

将一个新部件添加为此部件的子部件。

参数:
widget: Widget

要添加到我们子控件列表中的控件。

index:整数,默认值为0

在列表中插入小部件的索引。请注意,默认值为0意味着小部件被插入到列表的开头,因此会绘制在其他同级小部件之上。关于索引和小部件层次结构的完整讨论,请参阅 小部件编程指南

在 1.0.5 版本加入.

canvas: 字符串,默认为 None

用于添加控件画布的Canvas。可以是'before'、'after'或None(默认画布)。

在 1.9.0 版本加入.

>>> 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, **kwargs)[源代码]

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

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

在 1.0.8 版本加入.

remove_widget(widget, *args, **kwargs)[源代码]

从该部件的子部件中移除一个部件。

参数:
widget: Widget

要从我们的子控件列表中移除的控件。

>>> from kivy.uix.button import Button
>>> root = Widget()
>>> button = Button()
>>> root.add_widget(button)
>>> root.remove_widget(button)