如何直接从文件在wxPython中加载TrueType字体(ttf)
我正在做一个 wxPython
项目,这个项目需要有文本编辑的功能。我想把一个字体文件(.ttf 文件
)打包到这个项目里,并把它设为文本编辑器的默认字体。请问在 wxPython
中可以实现吗?在2007年,wxPython-users
邮件列表里有过类似的问题。当时是无法做到的。现在已经过去七年了,我希望有人能找到解决办法。
我现在使用的是 wx.richtextctrl
作为文本编辑框。如果有必要,我也可以考虑使用 wx.styledtextctrl
来解决我的问题。
2 个回答
1
wxpython 4.1 新增了一个方法
wx.Font.AddPrivateFont(path)
这个方法让程序可以使用那些没有在系统上全局安装的字体
文档中提到两个重要的注意事项
- 在 OS X 系统上,这个方法实际上只是在检查应用程序包的“资源”目录下的“字体”子目录中是否存在字体文件。你需要自己把字体文件放到这个目录里,并在你的 Info.plist 文件中把 ATSApplicationFontsPath 设置为 Fonts。你也可以查看 wx.StandardPaths.GetResourcesDir。
- 在 MSW 系统上,这个方法必须在创建任何 wx.GraphicsContext 对象之前调用,否则私有字体就无法使用。
1
不,wx 仍然只能使用系统中安装的字体。如果你通过安装程序来分发你的项目,那么安装程序可以安装字体,这样你的应用就可以通过字体的名称来使用它。