Kivy 简明教程
Kivy - Layouts
Kivy 应用程序窗口一次容纳一个微件。因此,如果您尝试添加两个按钮,则只会显示第二个按钮。另一方面,一个好的 GUI 需要不同的微件,即标签、文本输入框、按钮等,以符合人体工程学。为此,Kivy 框架提供了布局。布局本身就是一个微件,能够容纳其他微件。因此,布局被称为容器微件。
在 Kivy 中,提供了不同类型的布局容器。所有这些都实现了 Layout 接口,该接口在 “kivy.uix.layout “模块中定义。Layout 接口本身继承了 Widget 类。
该接口最重要的两个方法是:
-
add_widget()
-
remove_widget()
Parameters
-
widget - 要添加到我们子级列表的微件。
-
index - 在列表中插入微件的索引。请注意,默认值为 0,这意味着微件插入在列表的开头,因此将绘制在其他同级微件之上。
-
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 顺序堆叠。 |
在随后的章节中,我们将详细讨论这些布局中的每一个,并附上相关的示例。