Kivy是一个图形用户界面(graphical user interface,GUI)工具用来轻松创建跨平台的Python应用,Kivy Blueprints(2015),个人认为是最好的kivy入门教程
移动应用开发几年前就是热点了,现在是个软件用户就想要移动版。桌面操作系统也受到影响,跨平台的软件成为新常态。甚至通常局限于微软桌面操作系统的游戏开发者也开始找一些Mac和Linux平台上的工作了(比如Steam,目前有Mac游戏近4000个,SteamOS+Linux游戏2000多个)。
这对新手和个人开发者是大利好:跨平台的支持可以增加用户,销售量自然会更好。
但是,写可移植的软件是非常耗费资源的过程,对小公司和个人开发者的影响比大公司更甚。
尤其是许多平台都有不同语言的SDK:iOS用Objective-C和Swift,Android用Java,MS用.Net,更多是C#来开发软件。
使用这些工具可以通过系统功能来制作相应的原生应用,但是跨平台的代码重用变得十分困难。就算你精通所有语言和相关的操作,代码的移植仍然是一件复杂的事情。
因此,统一多平台支持开发工具呼之欲出。无独有偶,1995年的Sun公司就为解决类似问题发明了Java。其口号为“Write once, run anywhere”(一次编写,到处运行,WORA),虽然Java已经20年了,很多人都在各种纪念。但是其啰嗦的代码仍然没能实现当年的豪言壮语,一些程序员的改编版本更能表达人们的感受——“write once, run away”(一次编写,到处跑偏),有一些放弃Java转向了更好的程序语言,比如Python。
本书主题Kivy是一个图形用户界面(graphical user interface,GUI)工具用来轻松创建跨平台的Python应用。其主要特征如下:
Kivy可以看作许多模块的超集:许多知名的模块如Pygame,SDL,GStreamer都是Kivy的组成部分。但是,Kivy的API更加高级、统一,方便使用。
Kivy是开源的,其源代码在GitHub上。你可以fork一下,帮忙打补丁,也可以增加新特性。
本书分9章。
下面简要介绍Kivy的安装方法,包括Mac,Linux和Windows系统。
Kivy同时支持Python2和Python3,2020年Python2停止维护,建议使用Python3。
许多平台不需要单独安装Python:比如Mac OS上自带Python2,Windows上和Kivy打包在一起,Linux(尤其是Ubuntu)支持
apt-get
安装。
Kviy的最新稳定版本可以在官方网站找到。如下图所示:
下载安装包后,具体平台安装方法可以看图中第三列指令,简要介绍如下:
Mac:
kivy
import kivy
[INFO] Kivy v1.9.0
Linux:
python
import kivy
[INFO] Kivy v1.9.0
Windows:
python
import kivy
[INFO] Kivy v1.9.0
运行Kivy应用很简单:
kivy main.py
python main.py
kivy.bat main.py
(或者把main.py拖到kivy.bat上运行)下面我们演示一个Kivy app的hello world
版。
程序的入口是main.py
,代码如下:
from kivy.app import App
class HelloApp(App):
pass
if __name__ == "__main__":
HelloApp().run()
布局文件是应用类名的去掉App
的小写部分加.kv
,也就是hello.kv
,代码如下所示:
Label:
text: 'Hello, Kivy'
这里只用了一个Kivy标签部件Label
,属性是text
。布局文件用一种简洁、声明式的语言定义复杂的布局,后面会介绍。
运行程序,看到的界面如下所示:
下面就让我们开始Kivy之旅吧!Enjoy
Tip: 最新源代码请参考作者Mark Vasilkov的github