Kivy有kivy.resources模块,里面有resource_find(filename),resource_add_path(path)这两个方法,先用
kviy.resources.resource_find("DroidSansFallback.ttf")
搜索,返回是None,没有找到。再用resource_add把一个包含该字体文件的路径添加进去,再用resource_find查找,则正确返回了该字体的全路径。整个流程如下:
首先创建一个label:
ll=Label(font_name=kivy.resources.resource_find("DroidSansFallback.ttf"),text=tipsstr)
运行之后,报错,大意为font_name属性不允许被设置为None。现在创建label之前,先使用
kivy.resources.resource_add_path(r'/home/kivy/android/android-sdk-linux/platforms/android-18/data/fonts')
来增加查找路径。再次运行,结果成功,证实了fond_name属性的内部是使用kivy.resources.resource_find来查找字体路径的。
另外说明下程序的编码选择:在程序首加#-*- coding:utf-8 -*-的情况下,无论label.text的串前有无加u(label1.text=u’测试中文’),均可在widget上显示出中文。print的打印输出也是中文。而设为cp936(gbk字符集)则会报错。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/502.html