我将使用 kivymd 进行应用程序,其中包含阿拉伯文和波斯文文本。
根据我的搜索,要做到这一点,您应该使用 arabic_reshaper 和 bidi.algorithm 并使用支持波斯语和阿拉伯语的字体。结果,我能够编写这样的代码,并且它很好地支持波斯语和阿拉伯语文本。
import kivy.app
import kivy.uix.label
import arabic_reshaper
import bidi.algorithm
class TestApp(kivy.app.App):
def build(self):
bidi_text = bidi.algorithm.get_display(arabic_reshaper.reshape("میلاد"))
return kivy.uix.label.Label(text=bidi_text, font_name="arial" , font_size="90sp")
testApp = TestApp()
testApp.run()
现在,我的问题是我想将我的程序编码如下,在这种方法中我可以更改字体,但我不能使用方法arabic_reshaper和bidi.algorithm,这会导致输出文本以这种方式显示。
from kivymd.app import MDApp
from kivymd.uix.screen import Screen
from kivymd.uix.label import MDLabel
from kivy.lang import Builder
import arabic_reshaper
import bidi.algorithm
screen_helper_up = """
Screen:
NavigationLayout:
ScreenManager:
Screen:
BoxLayout:
orientation: 'vertical'
MDToolbar:
title: 'میلاد'
font_name:'arial.ttf'
left_action_items: [["menu", lambda x: nav_drawer.toggle_nav_drawer()]]
elevation:10
Widget:
Label:
text: "میلاد"
font_name:'arial.ttf'
markup: True
font_size: 100
color: 0,0,0,1
MDNavigationDrawer:
id: nav_drawer
"""
class DemoApp (MDApp):
def build(self):
screen = Screen()
screen = Builder.load_string(screen_helper_up)
return screen
DemoApp().run()
如下图所示,字体仅在 Label 和 MDToolbar 标题中发生了变化,不幸的是,字体也没有变化。
如何使用 ... 和 ... 方法在上述代码中显示波斯语和阿拉伯语文本?
如何更改...中的字体?