《Python+Kivy(App开发)从入门到实践》自学笔记:大小和位置

章节目录与知识点总揽

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}

        运行结果:

fe4f4d357fe949e7addb85edd0056a82.jpeg

 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种。

6751f8a4beed43a9953d5cb2cbe5dd87.jpeg

 

        使用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}

        运行结果如下:

b3926919ed9a4315a4ad523e0ce1472a.jpeg

上一篇:解决kivy不能显示中文问题:

下一篇:FloatLayout 布局

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静候光阴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值