Kivy - 布局
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 的顺序堆叠。 |
在后续章节中,我们将通过相关示例详细讨论每种布局。