Kivy 布局



Kivy 应用程序窗口一次只能容纳一个小部件。因此,如果您尝试添加两个按钮,则只会显示第二个按钮。另一方面,良好的图形用户界面需要不同的部件,例如标签、文本输入框、按钮等,以符合人体工程学地放置。为此,Kivy 框架提供了布局。布局本身是一个能够容纳其他小部件的小部件。因此,布局被称为容器小部件。

在 Kivy 中,提供了不同类型的布局容器。它们都实现了在“kivy.uix.layout”模块中定义的 Layout 接口。Layout 接口本身继承了 Widget 类。

此接口的两个最重要的方法是:

  • add_widget()

  • remove_widget()

add_widget()

此方法用于将新的小部件添加为此布局的子项。其语法如下:

add_widget(self, widget, *args, **kwargs)

参数

  • widget - 要添加到我们的子项列表中的小部件。

  • index - 在列表中插入小部件的索引。请注意,默认值为 0 表示小部件插入到列表的开头,因此将绘制在其他同级小部件的顶部。

  • canvas - 要将小部件的画布添加到其中的画布。可以是 'before'、'after' 或 None(使用默认画布)。

remove_widget

此方法用于从此小部件的子项中删除一个小部件。以下是其语法:

remove_widget(self, widget, *args, **kwargs)

其中,参数“widget”代表要从子项列表中删除的小部件。

请注意,Layout 是一个接口,因此不能直接使用。实现这些方法的 Layout 类是具体的类,如下列列表所示:

序号 方法和描述
1

AnchorLayout

小部件可以锚定到 'top'、'bottom'、'left'、'right' 或 'center'。

2

BoxLayout

小部件按顺序排列,方向为 'vertical' 或 'horizontal'。

3

FloatLayout

小部件基本上不受限制。

4

RelativeLayout

子小部件相对于布局定位。

5

GridLayout

小部件排列在由 rows 和 cols 属性定义的网格中。

6

PageLayout

用于创建简单的多页布局,允许使用边框轻松从一页翻到另一页。

7

ScatterLayout

小部件的定位类似于 RelativeLayout,但可以平移、旋转和缩放。

8

StackLayout

小部件按 lr-tb(从左到右,然后从上到下)或 tb-lr 顺序堆叠。

在接下来的章节中,我们将详细讨论这些布局,并提供相关的示例。

广告