一个简单的 Python-kivy 小程序

时间:2020-04-19
本文章向大家介绍一个简单的 Python-kivy 小程序,主要包括一个简单的 Python-kivy 小程序使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

大家都知道,Python的用处是所有语言里面最广泛的,这使得它几乎可以开发任何的项目(除了前端)。

而有一个方向是大家可能不熟悉,但是又确实存在的,那就是全平台APP开发,Python的kivy就是用来做这个事情的,你只需要一次编码,就能够让你的APP能够运行在IOS,Android,Windows,Linux甚至树莓派上。

简单的Hello World!


我们今天就来体验一下一`kivy`小程序,感受一下它写代码到底又多么容易
首先我们需要创建一个`kivy`主文件
# File: hello.py
​
import kivy
kivy.require('1.9.1')
​
from kivy.app import App
from kivy.uix.button import Label
​
class HelloApp(App):
    def build(self):
        return Label(text='Hello World')
​
if __name__=="__main__":
    HelloApp().run()
   

然后通过python hello.py --size=200x150来执行这个脚本,将会得到一个界面如下

控制层与表现层分离

虽然如上的程序编码起来已经很简单了,但是逻辑部分和表现部分的代码混杂在一起,并不方便管理,因此`Kivy`提供了两层分离结构。
  1. 控制层

# File: hello2.py
​
from kivy.app import App
from kivy.uix.button import Label
​
class Hello2App(App):
    def build(self):
        return Label()
​
if __name__== "__main__":
    Hello2App().run()
2. 表现层
#:kivy 1.9.1
<Label>:
    text: 'Hello World !'

此处我们分别使用控制层与表现层来展现我们的APP,使得代码更加方便管理,分工更加清晰。

避免全局样式覆盖组件

以上虽然实现了开发过程中的代码可管理特性,但是按照如上的方法,所有的`Label`都将是同一个样式。因此为了避免这个情况,我们需要自定义组件(继承)
# File: widgets.py
from kivy.app import App
from kivy.uix.widget import Widget
​
class MyWidget(Widget):
    pass
​
class WidgetsApp(App):
    def build(self):
        return MyWidget()
​
if __name__ == "__main__":
    WidgetsApp().run()
<MyWidget>:
    Button:
        text: 'Hello'
        font_size: 32
        color: .8,.9,0,1
        pos: 0,100
        size: 100,50
    Button:
        text: 'World!'
        font_size: 32
        color: .8,.9,0,1
        pos: 100,0
        size: 100,50


注意:此处的<MyWidget>不再简单的表示一个组件,而是象征着类。而Button:表示的是实例,因此我们就在界面中创建了两个Button实例。

例中样式解析

1、text文本内容

2、font_size文本字体大小

3、 color文本颜色

4、pos组件位置,以组件的左上角坐标为定位

5、size组件大小,指定像素量

原文地址:https://www.cnblogs.com/jlfw/p/12733139.html