kivy标签中的多行文字(python-bidi)
作者:互联网
我有一个标签,显示波斯语中的多行文字
kv文件:
<FarsiLabel@Label>:
font_name: 'tabassom'
FarsiLabel:
text: set_text('پیروزی برای افرادی امکان پذیر است که از مبارزه دست نمی کشند\n')
text_size: self.size
halign: 'center'
color: utils.get_color_from_hex('546E7A')
set_text方法:
def set_text(text):
text = unicode(text, 'utf-8')
result = arabic_reshaper.reshape(text)
result = get_display(result)
return result
结果(不正确):
正确的结果(gimp):
我在python-bidi get_display方法中发现了问题,但我不知道如何解决它
问题是:如何解决这个问题?
解决方法:
这就是bidi.algorithm.get_display的工作原理,它颠倒了字母的顺序.所以你认为它是第一个单词是输出中的最后一个单词.
您应该以字符检测标签的宽度,并自己进行分割.然后在每一行上应用get_display.
>第1行:粉丝俱乐部热门粉丝俱乐部
>第2行:دستنمیکشند
标签:python,label,kivy,persian 来源: https://codeday.me/bug/20190702/1359193.html