布局layout是一种能控制自己子控件尺寸和位置的控件。有各种不同的布局,通常使用尺寸推测size_hint和位置推测pos_hint这两个属性来决定子控件children的尺寸size和位置pos
大小:size_hint: 传入值为0-1之间,代表宽或高与当前窗口的宽或高的比例值。如size_hint:.2,.15
size,需要为宽和高指定一个固定值,代表控件的宽或高不会因为设备而改变,同时size_hint必须设置【None,None】
位置:pos_hint : 比例值为0-1之间。必须传人字典值,{}不能省略。比例值计算。
如pos_hint:{'x':0.2,'y':.6}, pos_hint:{'right':0.2,'top':.4}
pos 直接指定具体值,如【100.200】
1、盒式布局BoxLayout:所有控件充满整个空间,横竖排列都可以。子控件的size_hint属性可以用来改变每个子控件的比例,也可以设置为固定尺寸。
2、网格布局GirdLayout:以一张网格的方式来安排控件。必须指定好网格的维度,确定好分成多少格,如此kivy才能计算出每个元素的尺寸并且确定如何安排这些元素的位置。cols=3,垂直排列为3即3列,rows=3为水平排列为3即3行
3、栈状布局StackLayout:挨着放一个个控件,彼此邻近,在某一维度上有固定大小,而使它们充满整个空间,这适合用来显示相同预定义大小的子控件
4、锚式布局AnchorLayout:一种非常简单的布局,只关注子控件的位置,将子控件放在布局的边界位置,不支持size_hint。
5、浮动布局FloatLayout:允许放置任意位置和尺寸的子控件,可以是绝对尺寸,也可以是相对布局的尺寸,默认的size_hint(1,1)会让每个子控件都与整个布局一样大,所以如果你多个子控件就需要修改这个值。可以把size_hint设置成(None,None),这样就可以使用size这个绝对尺寸属性,控件也支持pos_hint,这个属性是一个dict词典,用来设置相对布局的位置。
6、相对布局RelativeLayout:与浮动布局FloatLayout相似,不同之处在于子控件的位置是相对于布局空间,而不是相对于屏幕
7、多页面布局PageLayout: 简单的,动态的多页面布局
8、ScatterLayout: 平移,旋转,缩放布局