Как я могу загрузить фронт истинного типа (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, в противном случае частный шрифт из них не будет использоваться.