章节目录与知识点总览
解决Kivy不能显示中文问题:
Kivy目前不能支持中文,但是支持Unicode编码。可以将中文转为Unicode编码后,复制到.py或.kv文件中。
中文转Unicode编码代码如下:
注意:中文输入部分必须都为中文输入模式,包括标点符号。
def turn_to_unicode(string):
res = ''
for v in string:
res = res + hex(ord(v)).upper().replace('0X','\\u')
#print(hex(ord(v)).upper())
print(string,'的Unicode编码为:',res)
return res
if __name__ == '__main__':
#标点符号必须是中文状态下的
turn_to_unicode('你好,世界')
输出结果:
将转换结果复制到1.3.1实例.kv文件中
<IndexPage>:
Button:
text:"\u4F60\u597D\uFF0C\u4E16\u754C"
将1.3.1实例的main.py再贴一遍:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
class IndexPage(BoxLayout):
def __init__(self,**kwargs):
super().__init__(**kwargs)
class TestApp(App):
def build(self):
return IndexPage()
if __name__ == '__main__':
TestApp().run()
运行仍然不能显示中文。具体如下
可以在'C:\windows\Fonts”路径下找到微软雅黑的字体文件:msyh1.ttf,将它复制到.py文件目录下。修改.py代码,具体如下:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
#使用微软雅黑显示字体
from kivy.core.text import LabelBase
LabelBase.register('Roboto','msyh.ttf')
class IndexPage(BoxLayout):
def __init__(self,**kwargs):
super().__init__(**kwargs)
class TestApp(App):
def build(self):
return IndexPage()
if __name__ == '__main__':
TestApp().run()
再次运行,成功!具体如下:
其次,还可以通过更改配置文件的方式修改Kivy的默认文件,windows下,Kivy的配置文件为:
"C:\Users\电脑用户名\.kivy\config.ini"打开该文件,找到default_font配置,将其更改为:
default_font = ['Microsoft YaHei UI','msyh.ttf字体文件绝对路径']
即:
default_font = ['Microsoft YaHei UI','C:\Users\Administrator\.kivy\msyh.ttf']
即可。
上一篇:Python文件+.kv 文件实现“Hello world”
下一篇:大小和位置