«

»

kivy中widget的中文字体显示

kivy android python ubuntuPython的图形界面跨平台框架Kivy使用比较方便,虽稍欠成熟,但再发展几年或许真能在移动应用开发上大发光彩。与许多外国人搞出来的新鲜东西一样,目前的Kivy里中文显示是个问题。android的默认中文字体,网上查了查,是DroidSansFallback.ttf。在自已的ubuntu12.10里搜了搜,幸运的是系统和android sdk都有这个字体,假设在目标安装的安卓手机里这字体也存在的话,如何使用呢?

Kivy有kivy.resources模块,里面有resource_find(filename),resource_add_path(path)这两个方法,先用

搜索,返回是None,没有找到。再用resource_add把一个包含该字体文件的路径添加进去,再用resource_find查找,则正确返回了该字体的全路径。整个流程如下:

首先创建一个label:

运行之后,报错,大意为font_name属性不允许被设置为None。现在创建label之前,先使用

来增加查找路径。再次运行,结果成功,证实了fond_name属性的内部是使用kivy.resources.resource_find来查找字体路径的。

另外说明下程序的编码选择:在程序首加#-*- coding:utf-8 -*-的情况下,无论label.text的串前有无加u(label1.text=u’测试中文’),均可在widget上显示出中文。print的打印输出也是中文。而设为cp936(gbk字符集)则会报错。

1 星2 星3 星4 星5 星 (尚无评分)
Loading...Loading...

相关文章

kivy中如何取得Android手机的sdcard位置? 用Kivy框架写个Android程序,要操作sdcard上的文件,问题是,Android各家随意定制,机型众多,如何取得...
Python中shutil.copytree的权限错误问题 Python的高级文件操作模块shutil提供了许多功能强大,使用方便的函数,比如copytree这样一个函数,然而p...
Kivy编译成apk后在Android手机上的日志位置 在电脑上写好一个kivy程序,编译成apk后拷至手机,运行,出现kivy启动界面,随即退出。怎么查找错误原因...
Ubuntu 12.10的VMware虚拟机中连接Android手机调试 用kivy框架开发python for android程序时,由于kivy的显示依赖于opengl es图形库,而开发环境虚拟机(Ub...
Python获取当前版本的函数 Python2.x和3.x的区别之大,几乎可以作为一个变种语言存在。在实际开发中,Python的版本选择是很让人纠...
获取虚拟空间的系统版本和Python版本 vps虽好,但配置相对较低,成本相对较高。对于一个无限流量,无限空间的虚拟主机,其实可以更充分的利用...
php和python求阶乘 Python和php比较,php更象一种专用Web开发语言。而Python的应用面更广泛一些,更偏向于一种通用语言。虽...
Python的三元条件表达式与列表解析表达式 Python作为一种非典型语言,天生就带有一些高级数据结构,如列表、元组、字典、集合、队列等,无需进一...

发表评论

电子邮件地址不会被公开。