Kivy 简明教程

Kivy - Layouts

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

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

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

  1. add_widget()

  2. remove_widget()

add_widget()

此方法用于将一个新微件作为此布局的子级添加。其语法如下:

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

Parameters

  1. widget - 要添加到我们子级列表的微件。

  2. index - 在列表中插入微件的索引。请注意,默认值为 0,这意味着微件插入在列表的开头,因此将绘制在其他同级微件之上。

  3. canvas - 用于将微件的画布添加到画布的“之前”、“之后”或 None(表示默认画布)。

remove_widget

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

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

其中,参数 "widget" 表示要从子级列表中删除的微件。

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

Sr.No

Methods & Description

1

AnchorLayout 微件可以锚定到“顶部”、“底部”、“左侧”、“右侧”或“中央”。

2

BoxLayout 微件按顺序排列,方向为“垂直”或“水平”。

3

FloatLayout Widgets are essentially unrestricted.

4

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

5

GridLayout 小工具按 rows 和 cols 属性定义的网格排列。

6

PageLayout 用于创建简单的多页布局,这种布局使用边框轻松地从一页翻到另一页。

7

ScatterLayout 小部件的定位方式与相对布局类似,但它们可以平移、旋转和缩放。

8

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

在随后的章节中,我们将详细讨论这些布局中的每一个,并附上相关的示例。