【问题标题】:How to display Hebrew text in a TextInput field in Python Kivy如何在 Python Kivy 的 TextInput 字段中显示希伯来语文本
【发布时间】:2019-04-22 18:52:02
【问题描述】:

我正在尝试在 kivy(一个 python 包)中制作一个简单的应用程序,它从 TextInput 字段中获取文本,当单击按钮时,它会返回一个希伯来语文本,该文本将显示在另一个 TextInput 上,一切似乎都在工作很好,但我遇到了 Kivy 中的 TextInput 字段无法显示我要显示的希伯来语文本的问题。

这是我得到的: 如您所见,它显示的是这个奇怪的文本,而不是我需要显示的文本...

我的代码,我的主脚本:

import kivy
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
import getData

class MainScreen(Widget):
    ttc = ObjectProperty(None)
    ct = ObjectProperty(None)

    def btn(self):
        self.ct.text = getData.HE_EN(text=self.ttc.text.lower())

    pass
class MyApp(App):
    def build(self):
        return MainScreen()

if __name__ == "__main__":
    MyApp().run()

我的“my.kv”文件:

<MainScreen>:
    ttc: ttc
    ct: ct
    GridLayout:
        size: root.width, root.height
        cols: 1
        TextInput:
            text: ""
            id: ttc
        Button:
            text: "CONVERT"
            on_press: root.btn()
        TextInput:
            text: "CONVERTED TEXT"
            id: ct

没有必要显示返回希伯来文文本的 getData.py 脚本,因为它并不重要......

预期的结果是在 TextInput 中获得我想要的文本,即使我认为我并没有真正做到。 请帮我解决我的问题,我确实需要这个...

【问题讨论】:

  • 默认字体不包含希伯来字符,您需要使用包含的字体。 TextInput 应该有一个属性来设置字体。我不确定从右到左的格式是否也有效,这可能仍然是 kivy 中的一个错误。
  • @inclement 好吧,Kivy 不支持从右到左的格式,尽管我并不真正需要它,所以我现在很好。

标签: python kivy hebrew


【解决方案1】:

好的!所以没花很长时间,因为不和谐服务器上的某个人帮助了我,我所要做的就是切换文本区域的字体,因为前一个没有希伯来字体。为此,我下载了字体“Arial”并将其与主脚本一起添加到我的文件夹中,我导入了from kivy.core.text import LabelBase,然后注册了字体:LabelBase.register(name="Arial", fn_regular="Arial.ttf"),告诉 TextInput 我想将字体设置为我刚刚添加到我的 .kv 文件中的小部件“font_name:“Arial””下,从而解决了问题。

【讨论】:

  • 其实只要使用 font_name: "Arial" 就可以了,不需要多导入。
  • 但是您是如何解决 RTL-LTR 问题的?我得到的是“םולש”而不是“שלום”
  • 好吧,我没能解决这个问题,所以我只是恢复了文本,并将其写在文本区域的左侧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-06
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
  • 2011-09-02
相关资源
最近更新 更多