Kivy - 布局

创建于 2024-12-03 / 32
字体: [默认] [大] [更大]

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

在 Kivy 中,有不同类型的布局容器可用。它们都实现了"kivy.uix.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 类是具体类,如以下列表所示 −

Sr.No 方法 &描述
1

AnchorLayout

Widget 可以锚定在"顶部"、"底部"、"左侧"、"右侧"或"中心"。

2

BoxLayout

Widget 按顺序排列,方向可以是"垂直"或"水平"。

3

FloatLayout

Widget 基本上不受限制。

4

RelativeLayout

子 widget相对于布局进行定位。

5

GridLayout

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

6

PageLayout

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

7

ScatterLayout

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

8

StackLayout

Widget 以 lr-tb(从左到右,然后从上到下)或 tb-lr 的顺序堆叠。

在后续章节中,我们将通过相关示例详细讨论每种布局。



0 人点赞过