Невозможно применить кириллический ввод текста 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)
...
Результат:

