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

Posted

技术标签:

【中文标题】如何在 GTK 应用程序中使用自定义字体【英文标题】:How to use a custom font in a GTK app 【发布时间】:2013-05-12 00:22:51 【问题描述】:

我有一个字体文件/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"))

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

Pango 在 Linux 中搜索 FontConfig 中的字体。对于 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>)

【讨论】:

以上是关于如何在 GTK 应用程序中使用自定义字体的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 应用程序中使用自定义字体? [复制]

如何在织物文本对象中应用自定义字体?

带字体手提箱的iPhone自定义字体

如何在gmail中使用自定义字体?

如何在 android 应用程序中正确对齐自定义字体

自定义字体未显示在字体系列列表中