如何在GTK应用程序中使用自定义字体

时间:2013-05-16 22:51:12

标签: python gtk gtk3

我有一个字体文件/path/to/app/fonts/custom-font.ttf,我想使用它。如何导入自定义TTF以用于GTK + 3.0应用程序?

from gi.repository import Gtk, Pango

# ...

lbl = Gtk.Label()
lbl.modify_font(Pango.FontDescription("sans 48"))
# lbl.modify_font(Pango.FontDescription("custom-font 48"))

2 个答案:

答案 0 :(得分:0)

Pango 在 FontConfig 中搜索 Linux 中的字体。对于 Windows,它查询 Windows API。对于 macOS,它的作用类似于 Windows。因此,在 Pango 获取字体列表并缓存它之前,将字体文件添加到 Pango 的搜索路径会有所帮助。 对于 Linux,我发现这个 blog post 似乎有效。 对于 Windows,您应该在启动 GTK 之前使用 AddFontResourceEx 添加字体。 我不知道 macOS。

由于这个问题被标记为 python,我看到了一个名为 ManimPango 的库可以完成这项工作,可以在其中执行以下操作

import manimpango
manimpango.register_font(<path-to-font-file>)

然而,截至目前,这 doesn't work for macOS.

答案 1 :(得分:-2)

如果要将其用作自己应用的预览,请安装字体并取消注释最后一行(提供正确的名称)。如果你想将它用作最终版本的自定义字体,我建议你用字体包装并制作一个脚本来安装它。 一个小注释,(在C中),“。modify_font”自Gtk 3.0后弃用,改为使用.override_font。