2

我有一个使用 pygtk 的字体按钮。最初,我不想设置字体,因为系统将采用默认字体。我的问题是获取系统使用的默认字体的代码行是什么,所以我一开始就保持默认。稍后用户更改字体后,应应用其各自的字体。任何人都可以帮忙吗?

4

4 回答 4

4

如果你在 GNOME 上,那么你可以像这样获得默认字体。(注意:未经测试)

from gi.repository import Gio
settings = Gio.Settings('org.gnome.desktop.interface')
font_name = settings.get_string('font-name')

您也可以根据需要使用键monospace-font-namedocument-font-name(我忘记了窗口标题字体的键名。)

于 2012-08-08T21:10:28.423 回答
1

PyGObject 上,这适用于默认字体:

settings = Gtk.Settings.get_default()
font_name = settings.get_property('gtk-font-name')

print(font_name)
# 'Cantarell 11' 

不幸的是,我还没有找到访问等宽字体或任何其他字体的方法。

于 2019-01-02T10:40:34.863 回答
0

Gtk 是一个可以在许多操作系统和桌面环境上运行的工具包。Gtk 不对默认字体和颜色负责。因此(据我所知)没有单一的函数可以从 Gtk获取这些值。

您的 OS/DE 中可能没有一种默认字体,但有很多。例如,在 Ubuntu 上,您可以在(高级)系统设置中选择:

在此处输入图像描述

如果您需要知道特定小部件的默认字体,例如标签,您可以执行以下操作:

from gi.repository import Gtk
l = Gtk.Label("Hello")
ls = l.get_style()
ls.font_desc.to_string()
# Ubuntu 11
于 2012-08-07T07:43:40.827 回答
0

有点晚了,但是如果将来有人遇到这种情况,一种巧妙的方法是使用pygame. 当然,这需要您安装和导入 pygame 并对其进行初始化!

import pygame
pygame.font.init()
def_font = pygame.font.get_default_font()
于 2014-10-19T04:42:43.503 回答