Найти в Дзене
HeagBoKaT

Dear PyGui: как подключить свой шрифт и включить поддержку кириллицы

Библиотека Dear PyGui — мощный инструмент для быстрого создания интерфейсов на Python. Однако при работе с кириллицей вы можете столкнуться с тем, что текст на русском языке не отображается корректно. По умолчанию библиотека не подключает все Unicode-символы, чтобы сохранить лёгкость и производительность. Чтобы исправить это, достаточно подключить свой шрифт и добавить диапазон символов для кириллицы. Ниже приведён рабочий пример кода, который: Ссылка на код для ленивых https://gist.github.com/HeagBoKaT/1447c3ec88610c481249eab4c4b41902 Вы можете использовать любой шрифт, поддерживающий кириллицу (например, Roboto, Open Sans, Arial Unicode MS, Noto Sans и т.д.). Пример: Dear PyGui использует встроенный механизм шрифтов от ImGui. Чтобы не загружать весь Unicode (что замедляет запуск), вы явно указываете, какие диапазоны символов вам нужны: Добавление пользовательского шрифта и включение поддержки кириллицы в Dear PyGui — это просто и быстро. Используйте это решение в своих инженерных инс
Оглавление

Введение

Библиотека Dear PyGui — мощный инструмент для быстрого создания интерфейсов на Python. Однако при работе с кириллицей вы можете столкнуться с тем, что текст на русском языке не отображается корректно. По умолчанию библиотека не подключает все Unicode-символы, чтобы сохранить лёгкость и производительность.

Чтобы исправить это, достаточно подключить свой шрифт и добавить диапазон символов для кириллицы.

Пример: подключение шрифта и кириллицы

Ниже приведён рабочий пример кода, который:

  • Регистрирует пользовательский шрифт (например, TTF-файл).
  • Добавляет поддержку кириллических символов.
  • Применяет шрифт ко всему интерфейсу.

✅ Код:

-2
Ссылка на код для ленивых https://gist.github.com/HeagBoKaT/1447c3ec88610c481249eab4c4b41902
Пример интерфейса с изменненым шрифтом кириллицы
Пример интерфейса с изменненым шрифтом кириллицы

Где взять шрифт?

Вы можете использовать любой шрифт, поддерживающий кириллицу (например, Roboto, Open Sans, Arial Unicode MS, Noto Sans и т.д.).

Пример:

Как работает add_font_range_hint

Dear PyGui использует встроенный механизм шрифтов от ImGui. Чтобы не загружать весь Unicode (что замедляет запуск), вы явно указываете, какие диапазоны символов вам нужны:

  • mvFontRangeHint_Default — латиница, цифры.
  • mvFontRangeHint_Cyrillic — русский, украинский, белорусский и т.п.
  • mvFontRangeHint_Japanese, mvFontRangeHint_Chinese_Full — для других языков.

Важно: порядок вызовов

  • dpg.font_registry() должен быть создан до setup_dearpygui().
  • Вызов dpg.bind_font() должен быть внутри блока шрифта, чтобы default_font уже существовал.

Заключение

Добавление пользовательского шрифта и включение поддержки кириллицы в Dear PyGui — это просто и быстро. Используйте это решение в своих инженерных инструментах, прототипах или визуализаторах, где важна локализация или удобство русскоязычных пользователей.