Как отобразить текст на иврите в поле TextInput в Python Kivy

Я пытаюсь сделать простое приложение в kivy (пакет python), которое получает текст из поля TextInput, и при нажатии кнопки оно возвращает текст на иврите, который будет отображаться в другом TextInput. Кажется, все работает нормально, но Я сталкиваюсь с проблемой, что поле TextInput в Kivy не может отображать текст на иврите, который я пытаюсь показать.

Вот что я получаю: Как отобразить текст на иврите в поле TextInput в Python Kivy Как видите, он показывает этот странный текст вместо текста, который мне нужно показать...

Мой код, мой основной скрипт:

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 22.04.2019 23:31

@inclement хорошо, Kivy не поддерживает форматирование справа налево, хотя мне это действительно не нужно, так что сейчас я в порядке.

Tal Moshel 25.04.2019 08:08
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
2
611
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо! Так что это не заняло много времени, потому что кто-то на сервере разногласий помог мне, и все, что мне нужно было сделать, это просто переключить шрифт текстовой области, потому что в предыдущем не было шрифта на иврите. Для этого я скачал шрифт «Arial», добавил его в свою папку с основным скриптом, импортировал from kivy.core.text import LabelBase, а затем зарегистрировал шрифт: LabelBase.register(name = "Arial", fn_regular = "Arial.ttf"), чтобы сообщить TextInput, что я хочу установить шрифт, который я только что добавил в свой файл . kv под виджетом 'font_name: "Arial"', и это решило проблему.

На самом деле все, что вам нужно, это использовать font_name: «Arial», и ему не нужно больше импортировать.

Elvira Gandelman 27.10.2019 18:27

Но как вы исправили эту штуку с RTL-LTR? Я получаю "םולש" вместо "שלום"

Berry Tsakala 15.10.2020 22:30

Ну, мне не удалось это исправить, поэтому я просто перевернул текст и написал это в левой части текстовой области.

Tal Moshel 08.11.2020 09:16

Другие вопросы по теме