有没有办法在 python kivy 中写波斯语
is there a way to write Persian in python kivy
我尝试在 python kivy 中写波斯语,但它不起作用。
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.lang import Builder
from kivy import Config
from kivy.uix.label import Label
from kivy.uix.widget import Widget
class MainApp(App):
def build(self):
return Label(text= "فارسی")
if __name__ == "__main__":
MainApp().run()
您需要使用一些波斯字体。
我已经用阿拉伯文字完成了
您可以从here
下载字体
然后使用 arabic_reshaper 库使其成形。
pip install arabic-reshaper
你还需要 python-bidi 来翻转字母
pip install python-bidi
参考这个https://github.com/mpcabd/python-arabic-reshaper
代码
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.lang import Builder
from kivy import Config
from kivy.uix.label import Label
from kivy.uix.widget import Widget
import arabic_reshaper
from bidi.algorithm import get_display
class MainApp(App):
def build(self):
reshaped_text = arabic_reshaper.reshape("فارسی")
bidi_text = get_display(reshaped_text)
return Label(text= bidi_text, font_name='Amiri-Regular.ttf', font_size=30)
if __name__ == "__main__":
MainApp().run()
输出
我尝试在 python kivy 中写波斯语,但它不起作用。
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.lang import Builder
from kivy import Config
from kivy.uix.label import Label
from kivy.uix.widget import Widget
class MainApp(App):
def build(self):
return Label(text= "فارسی")
if __name__ == "__main__":
MainApp().run()
您需要使用一些波斯字体。 我已经用阿拉伯文字完成了
您可以从here
下载字体然后使用 arabic_reshaper 库使其成形。
pip install arabic-reshaper
你还需要 python-bidi 来翻转字母
pip install python-bidi
参考这个https://github.com/mpcabd/python-arabic-reshaper
代码
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.lang import Builder
from kivy import Config
from kivy.uix.label import Label
from kivy.uix.widget import Widget
import arabic_reshaper
from bidi.algorithm import get_display
class MainApp(App):
def build(self):
reshaped_text = arabic_reshaper.reshape("فارسی")
bidi_text = get_display(reshaped_text)
return Label(text= bidi_text, font_name='Amiri-Regular.ttf', font_size=30)
if __name__ == "__main__":
MainApp().run()
输出