【问题标题】:multiline text in kivy label(python-bidi)kivy 标签中的多行文本(python-bidi)
【发布时间】:2015-09-22 23:28:55
【问题描述】:

我有一个以波斯语显示多行文本的标签

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方法的问题,但是不知道怎么解决

问题是:如何解决这个问题?

【问题讨论】:

    标签: python label kivy persian


    【解决方案1】:

    bidi.algorithm.get_display 就是这样工作的,它颠倒了字母的顺序。所以你认为第一个词是输出中的最后一个词。

    您应该以字符为单位检测标签的宽度并自己进行行分割。然后在每一行应用get_display

    • 第 1 行: پیروزی برای افرادی امکان پذیر است که از مبارزه
    • 第 2 行: دست نمی کشند

    【讨论】:

      猜你喜欢
      • 2021-04-29
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多