2.1大小和位置
2.1.1大小
size_hint属性
Kivy中,对于控件大小的控制,一般使用size_hint属性,传入值必须为0-1之间,代表宽(或高)与当前窗口的宽(或高)比例值,例如[0.2,0.15]。也可以使用省略0的写法,即:[.2,.15]。
size属性
使用size属性时需要为宽和高指定一个固定值,控件的宽高不会因为设备而改变,同时使用size属性时,size_hint属性必须为[None,None]。
实例2.1 设置大小
使用size属性的.py文件内容如下:
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
#布局
class SizeFloat(FloatLayout):
#初始化
def __init__(self,**kwargs):
super().__init__(**kwargs)
#继承App类
class SizeApp(App):
#实现App类的build()方法(继承自App类)
def build(self):
#返回根控件
return SizeFloat()
if __name__ == '__main__':
SizeApp().run()
对应的.kv文件内容如下:
<SizeFloat>:
Button:
text:'Hello'
#设置按钮大小
size_hint:.2,.15
#按钮位置
pos_hint:{'x':0.2,'y':.6}
Button:
text:'Size'
size_hint:.2,.15
pos_hint:{'right':0.8,'top':.4}
运行结果:
2.1.2位置
pos属性
控件位置,可以用pos属性指定具体的值,例如:[100,200]
pos_hint属性
通过比例值(0-1之间的值)进行设置。比例值得计算方式为:把窗口看成是一个以左下角为起点(0,0)的坐标系。横向为x轴,纵向为y轴。假设窗口的宽度为W,长度为L,那么窗口内任意一点的值为[y/W,x/L]。
对于一个控件:
x轴上面需要确定三个点:左边界的x点,中间点center_x,右边界right;
y轴上面需要确定三个点:上边界top、正中间center_y、下边界y点。
对于一个大小已经确定的控件,其同一个位置的写法最少有9种。
使用pos_hint属性时,我们必须传入一个字典值,例如:{'x':.5,'y':.1}。大括号不可省略!
实例2.2设置位置
新建一个.py文件,内容如下:
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
class PosFloat(FloatLayout):
#布局类
def __init__(self,**kwargs):
#初始化
super().__init__(*kwargs)
class PosApp(App):
#实现App类的build()方法(继承自App类)
def build(self):
#返回根控件
return PosFloat()
if __name__ == '__main__':
PosApp().run()
创建PosApp类对应的pos.kv文件,内容如下:
<PosFloat>:
Button:
text:'Hello'
size_hint:.2,.15
pos_hint:{'x':0.3,'y':.75}
Button:
text:'Pos'
size_hint:.2, .15
pos_hint:{'x':0.6,'y':.25}
运行结果如下:
上一篇:解决kivy不能显示中文问题:
下一篇:FloatLayout 布局