对于任何图形界面的框架而言,布局都是很是重要的一个组成部分。前端
它就像人体的骨骼、房屋的钢筋混凝土梁架,支撑起整个图形界面、条理好各个小部件的位置。git
在 Web 开发的前端 CSS 中,最多见的有栅格布局、绝对布局和相对布局。github
在 Python 的 PyQt5 中,州的先生比较常使用的时网格布局、垂直布局和水平布局。web
而 Kivy 也提供了很多的布局方式,供咱们在使用 Kivy 开发跨平台的图形界面程序时使用。微信

Kivy 中全部的布局模块都位于kivy.uix
中,好比:app
浮动布局:框架
from kivy.uix.floatlayout import FloatLayout
相对布局:布局
from kivy.uix.relativelayout import RelativeLayout
固定布局:flex
from kivy.uix.anchorlayout import AnchorLayout
网格布局:ui
from kivy.uix.gridlayout import GridLayout
堆叠布局:
from kivy.uix.stacklayout import StackLayout
使用方式也很简单,实例化以后,调用add_widget()
方法将小部件添加进入便可。
下面,咱们就经过一些实例来了解 Kivy 的几种经常使用图形界面布局。
浮动布局
在浮动布局中,小部件基本上不受限制,浮动在布局中。咱们经过设置小部件的大小和位置,来自由地控制布局内的小部件。

相对布局
RelativeLayout 相对布局和浮动布局相似,可是浮动布局内的小部件是基于布局层的绝对定位,而相对布局使用的则是相对定位。

固定布局
AnchorLayout固定布局用于固定布局层内小部件的位置,能够将小部件固定在左侧、右侧、顶部、底部和中央。
不一样于上述的布局方式,固定布局须要在实例化的时候指定固定方式的参数:
•anchor_x
参数表示 X 轴坐标的固定方式,接受left、center和right;•anchor_y
参数表示 Y 轴坐标的固定方式,接受top、center和bottom;

网格布局
网格布局GridLayout在各种图形界面开发中都是很经常使用的布局层。经过行和列的设置,它能够灵活地自适应地控制小部件在布局层中的位置。
实例化的 GridLayout() 必须指定行rows
、列cols
中至少一个值,否则将会抛出异常。例如:
GridLayout(cols=2)

堆叠布局
堆叠布局 StackLayout 用于垂直或水平地排列小部件。堆叠布局支持如下两种方式来控制小部件的排列:
•lr-tb
:从左到右,而后从上到下地排列;•tb-lr
:从上到下,而后从左到右地排列;
经过布局的orientation
来设置上述的堆叠方式,例如:
StackLayout(orientation='lr-tb')

最后
上面就是 Kivy 中比较常见的几种图形界面的介绍了。上面介绍的几个图形界面布局实例均来自于觅道文档的在线教程《使用Kivy构建现代桌面GUI应用》,若是须要上述布局实例的代码,能够点击“阅读原文”进行查看。
本文分享自微信公众号 - 州的先生(zmister2016)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。