一个简单的 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`提供了两层分离结构。
控制层
# 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
- Kafka定时清除过期数据
- 腾讯高级副总裁郭凯天:打造腾讯智库分析互联网产业前沿问题
- Google Chrome 浏览器 开发者工具 使用教程
- 反向代理(Reverse Proxy)及 IIS 7 应用请求路由模块
- 2014腾讯“大数据连接的未来”高峰论坛在京召开
- 工作流、业务流程管理和SOA
- 面向对象设计的SOLID原则
- 用psake来简化自动化脚本的构建
- TESLA V100如何让质疑GPU的流言“失声”
- Web 前端性能优化相关内容解析
- Service Broker 无法工作的问题修复
- .NET代码快速转换成powershell代码
- 网站性能评分工具Yslow 使用教程
- Temp权限引起的WCF问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法