开源Python UI框架:Kivy

标签: Python UI | 发表时间:2011-07-18 11: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复杂性计算,也就是循环复杂度.

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 日志进行调试:.

UI框架选型

- - ITeye博客
  最近公司的一个新项目要进行UI框架的选型,我把选型的思路和过程跟大家分享一下.   在选型之前,我们先要定一下选型的标准,就像人生一样,想清楚“自己要的是什么”是最重要的.   选型的标准分为几部分:. 业务是根本,和大部分的技术一样,框架没有好坏之分,只有适合与不适合.         我们项目是一个通讯类的监控项目,用户群是移动、电信等运营商的运维人员,系统的特点是:.

[转] jQuery ui框架

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

Python实现逻辑回归(Logistic Regression in Python)

- - 神刀安全网
Logistic Regression in Python ,作了中文翻译,并相应补充了一些内容. 本文并不研究逻辑回归具体算法实现,而是使用了一些算法库,旨在帮助需要用Python来做逻辑回归的训练和预测的读者快速上手. 逻辑回归是一项可用于预测二分类结果(binary outcome)的统计技术,广泛应用于金融、医学、犯罪学和其他社会科学中.