Как я могу загрузить фронт истинного типа (ttf) в wxPython из файла напрямую

Я работаю над wxPython проект с возможностями редактирования текста. Я хочу упаковать шрифт с этим проектом (a .ttf file) и иметь его в качестве шрифта по умолчанию для текстового редактора. Можно ли это сделать в wxPython? Был похожий вопрос в 2007 году в wxPython-users список рассылки. В то время это было невозможно. Прошло уже семь лет, и я надеюсь, что кто-то придумал решение для этого.

Я сейчас пользуюсь wx.richtextctrл для окна редактирования текста. Я мог бы рассмотреть возможность использования wx.styledtextctrl вместо этого, если это поможет решить мою проблему.

1 ответ

Решение

Нет, wx все еще может использовать только те шрифты, которые установлены в системе. Если вы распространяете свой проект с помощью установщика, он может установить шрифт, и ваше приложение может получить к нему доступ по имени.

Wxpython 4.1 добавил метод

wx.Font.AddPrivateFont(path)

что позволяет программе использовать шрифты, даже если они не установлены в системе глобально.

В документах добавлены два важных заявления об отказе от ответственности.

  • В OS X этот метод фактически не делает ничего, кроме проверки существования файла в подкаталоге "Fonts" каталога "Resources" пакета приложения. Вы несете ответственность за то, чтобы сделать файл шрифта доступным в этом каталоге и установить для ATSApplicationFontsPath значение Fonts в вашем файле Info.plist. См. Также wx.StandardPaths.GetResourcesDir
  • В MSW этот метод должен вызываться до того, как будут созданы какие-либо объекты wx.GraphicsContext, в противном случае частный шрифт из них не будет использоваться.
Другие вопросы по тегам