【发布时间】:2021-12-09 10:38:29
【问题描述】:
我正在尝试创建一个标签,为其指定一些文本并使用一些自定义字体,在 python 文件中使用属性“font_name”,而不是在 kv 文件中。这是代码:
python 代码:
some_text = bidi.algorithm.get_display(
arabic_reshaper.reshape(<some_persian_text>))
MDLabel(text=some_text, size_hint=(None, None), font_name="fonts/Shabnam-Bold", size=(300, 100), pos_hint={'center_x': 0.5, 'center_y': .8}))
对应的kv文件:
<SomeScreen>:
name: 'some_screen'
AnchorLayout:
id: main_layout
size: self.width, self.height
anchor_x: 'center'
anchor_y: 'top'
MDToolbar:
id: main_toolbar
title: "TITLE"
# left_action_items: [["menu", lambda x: side_bar.set_state('open')]]
left_action_items:[['arrow-left', lambda x: root.go_back()]]
md_bg_color: app.theme_cls.primary_color
elevation: 15
如您所见,我已经在 kv 文件中设置了工具栏,并尝试在 python 中为它动态呈现一些其他内容。标签的文本是波斯语(伊朗使用的一些从右到左的语言)。rabic_reshaper 旁边的 bidi 库使应用程序能够呈现从右到左的文本。问题是,当我完全在 kv 文件中执行此操作时(在 python 中设置文本,在 kv 文件中创建标签并将文本和 font_name 也在 kv 文件中设置),一切正常。但是当我这样做时(在py文件中创建和设置标签内容和字体),字体不能正常工作,并显示一些废话:
我该如何解决这个问题?谢谢。
【问题讨论】: