开源Python UI框架:Kivy

标签: Python UI | 发表时间:2011-07-18 19:30 | 作者:handaoliang xin
出处:http://www.showmuch.com/article

kivy frameworkKivy是一个可用以快速创建新颖用户界面应用的开源Python库,比如可以用它来创建多点触摸的应用程序,它具备跨平台特性,目前发行有Windows、MacOS、Linux以及Android版本。作为一个开源框架,Kivy具备以下特性:A.百分百免费使用;B.基于 LGPL3协议 开源,对商业化应用友好;C.跨平台,支持Windows、MacOS、Linux以及Android;D.允许在不同的平台上运行同一套代码;E.稳定以及有完善的API文档;F.通过OpenGL ES 2.0对硬件进行加速;G.自然支持大部分的输入协议或者输入设备;H.基于Python的简单API……等等。

一、下载安装
Kivy的所有安装包可通过其下载页面找到,不同的版本分别有对应的安装文档。如下图所示,这里我们以MacOS版本为例。

kivy framework

下载到Kivy-1.0.7-osx.dmg包之后,将Kivy.app安装到Applications文件夹下去,它打包的一系列的程序都将安装到Kivy.app下面,此时我们可以通过双击APP启动。但是我想大部分的Geek更喜欢在Command Line下启动。这个Kivy开发团队已经为您考虑到了,所以安装包里提供了一个建立软连接的脚本:make-symlinks,双击它就可以在/usr/local/bin/下创建一个软连接,指向kivy的一个script脚本。

ln -s /Applications/Kivy.app/Contents/Resources/script /usr/local/bin/kivy

个人不喜欢这种随便加软连接的行为,所以在环境变量里加上了:
alias kivy=’/Applications/Kivy.app/Contents/Resources/script’
效果是一样的。

二、创建Kivy实例
我们先创建一个简单的APP,要实现的效果是,当在界面上点击时,输出我们想要说的话。代码如下:

  1. #-*- coding:utf-8 -*-
  2. import kivy
  3. from kivy.app import App
  4. from kivy.uix.widget import Widget
  5. from kivy.uix.button import Button
  6.  
  7. class myApp(App):
  8.     def build(self):
  9.         #创建一个Button实例
  10.         btn = Button(text=Say Hello to ShowMuch.comfont_size=30)
  11.         #绑定点击事件。
  12.         btn.bind(on_press=self.callback)
  13.         return btn
  14.  
  15.     #触发事件。
  16.     def callback(self, instance):
  17.         print Hello ShowMuch.com
  18.  
  19. if __name__ == __main__:
  20.     myApp().run()

将代码保存为example.py,下面我们通过kivy example.py来运行它,效果图如下:
kivy framework

三、在Kivy中使用模板
上面我们了解了Kivy的基本应用,但是,要构建一个漂亮的用户界面,显然光有这些是不够的,那么为了解决这个问题,Kivy也引入了模板技术,通过模板技术,一方面可以让Python程序员专注于逻辑设计,另一方面也降低了后续代码的维护难度,下面我们来看一个基本的模板实例:

  1. #-*- coding:utf-8 -*-
  2. import kivy
  3. from kivy.app import App
  4.  
  5. class myApp(App):
  6.     pass
  7.  
  8. if __name__ == __main__:
  9.     myApp().run()

这段代码非常之简单,当我们运行这段代码时,Kivy会自动去当前目录下寻找一个叫my.kv的模板文件,如果存在,则会把这个文件加载进来,并进行展示,如果不存在,由会出错,my.kv的代码如下:

  1. #-*- coding:utf-8 -*-
  2. Widget:
  3.     Button:
  4.         text: "Hello www.ShowMuch.com"
  5.         width:200
  6.         height:50
  7.         pos:(500,200)
  8.  
  9.     Button:
  10.         text: "Fuck The GFW……."
  11.         width:180
  12.         height:70
  13.         pos: (200, 200)

Kivy的模板代码也很好理解,在上面的模板里面,我们定义了两个按钮分别指定了不同的高度和宽度,以及不同的位置,用以显示不同的内容。效果图如下:
kivy framework

四、结语
总体来说,Kivy还是一款相当令人惊艳的NUI Framework,其简单、高效以及方便的可扩展,都令人印象深刻,是一个非常值得关注的开源项目。

相关 [开源 python ui] 推荐:

开源Python UI框架:Kivy

- xin - 秀码趣 - ShowMuch.com
Kivy是一个可用以快速创建新颖用户界面应用的开源Python库,比如可以用它来创建多点触摸的应用程序,它具备跨平台特性,目前发行有Windows、MacOS、Linux以及Android版本. 作为一个开源框架,Kivy具备以下特性:A.百分百免费使用;B.基于 LGPL3协议 开源,对商业化应用友好;C.跨平台,支持Windows、MacOS、Linux以及Android;D.允许在不同的平台上运行同一套代码;E.稳定以及有完善的API文档;F.通过OpenGL ES 2.0对硬件进行加速;G.自然支持大部分的输入协议或者输入设备;H.基于Python的简单API……等等.

Android UI 组件开源软件

- - 移动开发 - ITeye博客
其实也算不上合集,只是将我经常用到的部分整理一下,如果您有好东西,也可以留言补充,. 可以参照应用Libraries for developers,ios的参照Libraries for developers Pro. https://github.com/JakeWharton/ActionBarSherlock (推荐).

开源Python网络爬虫框架Scrapy

- - 互联网实践
所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据. 不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何保证我们抓取到了网站的所有HTML页面就是一个有待考究的问题了. 一般的方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到爬虫的抓取队列中,然后进入到新新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样.

惠普继续开源JavaScriptCore和Enyo UI widget

- - HTML5研究小组
近日,惠普继续按照之前公布的webOS开源路线图前进,Enyo2.0的部分UI组件开始公布,还有javascript核心代码,以及webOS上全新的的QtWebKit浏览器代码. 近日,惠普继续按照之前公布的webOS开源路线图前进,Enyo2.0的部分UI组件开始公布,还有javascript核心代码,以及webOS上全新的的QtWebKit浏览器代码.

2013年最好的Python开源项目汇总

- - ITeye资讯频道
2013年Python社区诞生了很多实用的开发工具,这些工具在一定程度上可以帮助你节省更多的时间. 本文为你汇总了这些工具,它们大部分都是开源的,你还可以通过源码来学习更多的Python开发知识. Radon是一个用于从源代码中计算出各种指标的Python工具,包括:. McCabe复杂性计算,也就是循环复杂度.

基于Python的开源人脸识别库:离线识别率高达99.38% | 机器之心

- -
仅用 Python 和命令行就可以实现人脸识别的库开源了. 该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild benchmark)上的准确率高达 99.38%. 该项目是要构建一款免费、开源、实时、离线的网络 app,支持组织者使用人脸识别技术或二维码识别所有受邀人员.

dropbox讲python

- chuang - Initiative
dropbox定制优化CPython虚拟机,自己搞了个malloc调度算法. 那个 !!!111cos(0). 期待这次PyCon China 2011.

Python调试

- - 企业架构 - ITeye博客
原文地址: http://blog.csdn.net/xuyuefei1988/article/details/19399137. 1、下面网上收罗的资料初学者应该够用了,但对比IBM的Python 代码调试技巧:. IBM:包括 pdb 模块、利用 PyDev 和 Eclipse 集成进行调试、PyCharm 以及 Debug 日志进行调试:.

Python WSGI 初探

- - 坚实的幻想
在构建 Web 应用时,通常会有 Web Server 和 Application Server 两种角色. 其中 Web Server 主要负责接受来自用户的请求,解析 HTTP 协议,并将请求转发给 Application Server,Application Server 主要负责处理用户的请求,并将处理的结果返回给 Web Server,最终 Web Server 将结果返回给用户.

[转] jQuery ui框架

- - CSDN博客Web前端推荐文章
   jQuery ui框架很多,除了官方提供的 jquery UI(如果你还不知道什么是 jQuery UI,请看 下载了jquery ui后如何使用),还有很多第三方提供的ui框架,因官方提供的jquery ui框架体积较大,所以很多人都不喜欢用,但不论是官方提供还是第三方提供,他们都是基于 jquery核心类库实现的ui框架.