- 編碼問題
- 字體問題
# 在py文件中的使用方式: btn = Button(text='我的世界', font_name='msyh.ttf')
在kv文件中的使用方式:
Button: text: '我的世界' font_name: 'msyh.ttf'
from kivy.core.text import LabelBase LabelBase.register(name='Font_Hanzi',fn_regular='./fonts/msyh.ttf')
注冊后如何使用呢?
# py文件中: btn = Button(text='我的世界', font_name='Font_Hanzi')
# kv文件中: Button: text: '我的世界' font_name: 'Font_Hanzi'
看起來是不是並沒有減少代碼量,其實不然,這樣為程序提供了一個統一的變量供所有控件使用,方便很多了。
class ClockApp(App): def build(self): return Builder.load_file('./kvs/clock.kv')
def load_file(self, filename, **kwargs): filename = resource_find(filename) or filename if __debug__: trace('Lang: load file %s' % filename) # 問題就出在open()方法上,它沒有指明具體的編碼格式 with open(filename, 'r') as fd: kwargs['filename'] = filename data = fd.read() ...
def load_file(self, filename, **kwargs): filename = resource_find(filename) or filename if __debug__: trace('Lang: load file %s' % filename) # 在open()方法中指明編碼方式為utf-8 with open(filename, 'r', encoding='utf-8') as fd: kwargs['filename'] = filename data = fd.read() ...