Невозможно применить кириллический ввод текста dearpygui

Я пытался использовать вариант решения проблемы используя:

with dpg.font_registry():
    with dpg.font(f'fonts\\TNR.ttf', 16, default_font=True, id="Default font", tag="Default font"):
        dpg.add_font_range_hint(dpg.mvFontRangeHint_Cyrillic)
dpg.bind_font("Default font")

Но вместо исправления поля ввода, на русском корректно стало отображаться только название окна и текст

таки вот так это выглядит

Как можно решить эту проблему?


Ответы (1 шт):

Автор решения: Mr. Fox

Подобный вопрос уже задавался.

Код из ответа:

...
big_let_start = 0x00C0  # Capital "A" in cyrillic alphabet
big_let_end = 0x00DF  # Capital "Я" in cyrillic alphabet
small_let_end = 0x00FF  # small "я" in cyrillic alphabet
remap_big_let = 0x0410  # Starting number for remapped cyrillic alphabet
alph_len = big_let_end - big_let_start + 1  # adds the shift from big letters to small
alph_shift = remap_big_let - big_let_start  # adds the shift from remapped to non-remapped
with dpg.font_registry():
    with dpg.font("arial.ttf", 20) as default_font:
        dpg.add_font_range_hint(dpg.mvFontRangeHint_Default)
        dpg.add_font_range_hint(dpg.mvFontRangeHint_Cyrillic)
        biglet = remap_big_let  # Starting number for remapped cyrillic alphabet
        for i1 in range(big_let_start, big_let_end + 1):  # Cycle through big letters in cyrillic alphabet
            dpg.add_char_remap(i1, biglet)  # Remap the big cyrillic letter
            dpg.add_char_remap(i1 + alph_len, biglet + alph_len)  # Remap the small cyrillic letter
            biglet += 1  # choose next letter
        dpg.bind_font(default_font)
...

Результат:

введите сюда описание изображения

→ Ссылка