大家都知道,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: 32color: .8,.9,0,1pos: 0,100size: 100,50Button:text: 'World!'font_size: 32color: .8,.9,0,1pos: 100,0size: 100,50


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

例中样式解析

1、text文本内容

2、font_size文本字体大小

3、 color文本颜色

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

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

一个简单的 Python-kivy 小程序相关推荐

  1. 实战|轻松用 Python 开发一个简单有趣的聊天小程序

    前言 Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol). UDP 为应用程序提供了一种无需建立连接就可以发送封装的 I ...

  2. 简单的python有趣小程序-【实战案例】利用Python做出趣味版防沉迷小程序

    今天带领大家利用Python做出趣味版防沉迷小程序 查询电脑的所有进程 用Python循环检测电脑软件的运行情况,当发现游戏软件时弹出警告窗口,并截图保存.学会这项技能,就再也不怕孩子偷偷打游戏了.下 ...

  3. 让程序暂停几秒_如何构建一个简单的Python提醒应用程序

    我想您对编程一无所知,并且想尝试用世界上的编程甜心Python来做些什么. 算法 这个程序将非常简单: 询问用户想要被提醒什么 询问时间(以多少分钟为单位) 计算超时(分钟乘以秒) 等待指定的时间 提 ...

  4. 整个canvas玩一玩,做一个简单的水印相机小程序

    目录 体验地址 前言 一.知识点介绍 1.小程序camera组件 2.腾讯位置微信sdk 3.微信小程序Canvas相关API(就不多说了) 二.拍照添加水印(核心部分) 体验地址 前言 核心js代码 ...

  5. 一个简单的留言微信小程序

    简易留言微信小程序 该小程序旨在熟悉小程序的页面写法,熟悉小程序的构成,掌握数据库的操作等等. 来了. 前言,一个小程序,如果需要和用户互动,就必定要获取用户授权,所以授权的操作这里省略, 我们只关注 ...

  6. PHP充值怎么打折,教大家如何用PHP语言写一个简单的商品打折小程序!

    注:php是嵌套在html里面使用的,本文仅是商品打折小程序的代码 效果图: 代码:html> 宗波尘客php代码演示P17 请输入商品折扣价: 折扣: 九折 八折 七折 六折 五折 $Orig ...

  7. java 移动图片_Java写的一个简单的图片移动小程序

    前两天,有一个小姑娘让帮忙给其写一个小玩意,就是在Panel上绘制一个图片,然后通过键盘的方向键进行控制移动.虽然比较简单,这里还是希望和大家分享一下,里面有两点特别需要注意的知识点,这里一并加以说明 ...

  8. java 提醒小工具_【JAVA】一个简单的定时提醒小程序

    [Java] 纯文本查看 复制代码import javax.swing.JOptionPane; public class Test { public static void main(String[ ...

  9. 简单的python有趣小程序-python好玩的小程序

    时钟的打印 有需要学习提升的宝宝可以进去免费报名一下 每天分享一些好完的技术和主流的项目 打印时钟: import turtle def draw_spiral(t, n, length=3, a=0 ...

  10. javaweb简单的登录增删改查系统_利用python操作小程序云数据库实现简单的增删改查!

    不止python,你可以利用任何语言那实现通过http请求来操作你自己的小程序云数据库了 背景 也是在最近吧,小程序更新了云开发 HTTP API 文档,提供了小程序外访问云开发资源的能力,使用 HT ...

最新文章

  1. GaussianView5对分子结构.gjf文件的解读
  2. Labview 属性节点讲解
  3. 【javascript权威指南】类型转换
  4. 获取显示器的唯一编号_宝马奔驰才配拥有的HUD抬头显示器,买菜车也能无损安装!...
  5. [jQuery原理] jQuery属性操作相关方法
  6. bootstrap 简介
  7. 再等等!华为折叠屏手机Mate X预计在7月底至8月初开售
  8. 数据协作如何解决大数据的大问题
  9. 标准C程序设计七---03
  10. java插件无法安装路径_Java虚拟机性能管理神器 - VisualVM(3) 插件安装与更新路径配置【转】...
  11. KKCapture视频录像软件下载
  12. 【转】概要设计文档编写规范
  13. 人工智能区块链智能合约_通过业务规则使您的区块链智能合约更智能
  14. IPv6地址基础理论讲解
  15. Re:LieF ~親愛なるあなたへ~ 后感
  16. 秋招来袭,想学习Java进大厂的小伙伴,这7点武林秘籍一定要点开看看!(附一线互联网大厂MySQL面试高频考点)
  17. 奇安信(2019笔试题)
  18. Linux上一款强大的GIF录制软件,Peek
  19. 如何快速将多个文件夹下内容合并到一个文件夹下
  20. Python pycharm一个文件夹如何变成一个model

热门文章

  1. 欧盟AI道德准则草案出炉
  2. SAP MM 物料主数据consumption视图数据的更新?
  3. AI 技术与人类主体想象 ——基于人工直觉在线讨论的研究
  4. 卫星互联网行业深度报告:战火早已熊熊燃烧
  5. 造出世界最大芯片的公司,Cerebras Systems到底是怎样的存在?
  6. 2019年全球企业人工智能发展现状分析报告
  7. 最后一场「屏之争」:汽车大佬与硅谷巨头的贴身肉搏
  8. NIPS 2017上演:Google大神们将带来哪些「精彩」?
  9. 在线等!同事扔需求,不会写代码躲在厕所怎么办 | 每日趣闻
  10. 感动!盲人计算机科学家研发语音浏览器,致力科技改善盲人生活