Kivy还提供了一种称为KV的设计语言,你可以用KV语言实现UI布局。不要看到是一门新的语言就劝退,博主一开始就被劝退了,但实际上学起来还是很快的,因为它虽然是一个语言,但毕竟用来设计UI界面的,所以入门也比较简单。
使用KV语言来实现UI布局可以创建一个名为***.kv的文档实现,也可以在原来的.py文件中添加kivy.bulid.Builder.load_string()函数,在该函数中添加代码段。完整的程序如下:
from kivy.app import App from kivy.uix.button import Button from kivy.uix.boxlayout import BoxLayout from kivy.lang import Builder Builder.load_string(''' <myLayout> BoxLayout: orientation:'vertical' spacing:15 padding:38 Button: id:0 text:'0' size_hint:(.5, .5) pos_hint:{"center_x": .5, "center_y": .5} on_press:root.on_press_button(self.text) Button: id:1 text:'1' size_hint:(.5, .5) pos_hint:{"center_x": .5, "center_y": .5} on_press:root.on_press_button(self.text) Button: id:2 text:'2' size_hint:(.5, .5) pos_hint:{"center_x": .5, "center_y": .5} on_press:root.on_press_button(self.text) Button: id:3 text:'3' size_hint:(.5, .5) pos_hint:{"center_x": .5, "center_y": .5} on_press:root.on_press_button(self.text) Button: id:4 text:'4' size_hint:(.5, .5) pos_hint:{"center_x": .5, "center_y": .5} on_press:root.on_press_button(self.text) Button: id:5 text:'5' size_hint:(.5, .5) pos_hint:{"center_x": .5, "center_y": .5} on_press:root.on_press_button(self.text) Button: id:6 text:'6' size_hint:(.5, .5) pos_hint:{"center_x": .5, "center_y": .5} on_press:root.on_press_button(self.text) ''') class myLayout(BoxLayout): def __init__(self, **kwargs): super(myLayout, self).__init__(**kwargs) def on_press_button(self, instance): print('你按下了{}键'.format(instance)) class boxLayoutExample(App): def build(self): return myLayout() if __name__ == "__main__": app = boxLayoutExample() app.run()
用以上的代码段与之前不用KV语言的代码段的UI和功能完全相同,大家可以运行一下试试。需要注意创建的myLayout类中继承了BoxLayout,并且在主App类的build()函数中要返回myLayout类,这样kivy才知道布置的UI是哪个。
细心的同学可以发现,在KV语言中定义的按钮中添加了id的属性,有了这个属性后就可以通过self.ids['id']来对相应的部件进行操作,虽然本次的例子中没有用到,但后面的例子会用到,在此先做个铺垫。用了KV语言的好处就是UI布置起来更直观,更符合易读,缺点就是很多功能相同的代码段重复出现,虽然可以复制粘贴,但毕竟还是体力活。在实际应用中大家可以根据自己的需求选择用或者不用KV语言。
版权声明
1.本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行测试。
2.本站资源仅供学习和交流使用,版权归资源原作者所有,请在下载后24小时之内自觉删除。
3.若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关。
4.若内容涉及侵权或违法信息,请联系本站管理员进行下架处理,邮箱ganice520@163.com(本站不支持其他投诉反馈渠道,谢谢合作)
- 上一篇: [Kivy教程]添加事件案例
- 下一篇: [Kivy教程]简易计算器程序1
发表评论