python - 有没有办法在 GTK 中获取系统中所有已安装字体的列表
问题描述
嗨,我正在制作一个 Gtk 应用程序,需要运行代码来获取系统中所有已安装字体的列表,以使用它来创建类似于 Gtk.FontChooserWidget 的列表,Gtk 中是否有任何内置函数可以做这个 ?
解决方案
这是一个使用Pango context
from获取系统字体名称的示例gi.repository
。
PS:我假设您正在使用Gtk3+
绑定Python
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class Example(Gtk.Window):
"""Using Pango to get system fonts names"""
def list_system_fonts(self):
"""Yield system fonts families names using Pango"""
context = self.create_pango_context()
for fam in context.list_families():
yield fam.get_name()
a = Example()
system_fonts = list(a.list_system_fonts())
print(system_fonts)
输出(取决于您机器中的字体,例如我的字体):
['STIXIntegralsUp',
'Noto Sans Gurmukhi',
'Noto Serif Bengali',
'Noto Sans Bengali',
'Sharjah',
'Noto Sans Mono CJK TC',
'Noto Sans CJK TC',
'Noto Sans Hebrew',
'Lato',
'Padauk',
...
'Rehan',
'URW Bookman L',
'FreeMono',
'Ubuntu Mono',
'STIXIntegralsSm',
'Sans',
'Serif',
'Monospace']
奖金:
推荐阅读
- reactjs - Firebase React 应用托管 FirebaseError:安装:API 密钥无效。请传递有效的 API 密钥。”
- java - 将 JSON 请求动态映射到其他没有 POJO 类的 JSON
- azure - 如何从 Azure 应用服务调用在 AKS 上运行的 Dapr Actor
- java - ANTLR 语法错误,取决于定义规则的位置
- r - 删除具有完整 NA 集的行
- javascript - 如何在 Google Drive Picker 中同时显示文件夹和 JSON 文件?
- kubernetes - Kubernetes:在 nginx 入口禁用 TLS 1.0 和 1.1
- typescript - 咖喱通用放置
- angular - Angular:在验证错误消息中使用浏览器的 html5 本机构建
- macros - 跨线荧光信号测量