python - Gtk.Settings 的默认字体错误

Posted

技术标签:

【中文标题】python - Gtk.Settings 的默认字体错误【英文标题】:python - Gtk.Settings' default font is wrong 【发布时间】:2020-02-10 15:29:04 【问题描述】:

我正在开发一个 Python3 GTK 应用程序。

当我在窗口上贴标签时,它不使用系统的默认字体。

默认字体是“Ubuntu”,但它使用了一种名为“Cantarell”的字体。

(左边是python3 main.py,右边是glade-previewer


我打印了默认设置:

print(Gtk.Settings.get_default().get_property("gtk-font-name"))
# Cantarell 11

这是我导入 gtk 的方式:

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import GLib, Gio, Gtk

为什么?我该如何解决这个问题?如何让它使用系统的默认字体?谢谢!

【问题讨论】:

无法重现您的行为(debian LXDE)。告诉,哪个窗口管理器? 侏儒,Ubuntu 19.04 但我认为它是关于 python 的,不是吗?我用 Vala 语言编写了相同的应用程序,它看起来与 glade-previewer 完全一样,但是 python gtk 库没有使用系统的默认字体。其实这就是重点。您在 gnome-tweaks 上设置的字体应该在基于 GTK 的应用程序上全局应用。摘要:我认为我不应该编写额外的代码来获取系统的默认字体,但是 GTK 组件应该带有默认字体。 (因为在 C 和 Vala 中,它是这样工作的) “但它是关于 python gtk”:也许,你的解释是有道理的。我明白了你的意思,即使我无法重现这一点。 【参考方案1】:

哦,我想通了。

当我在 Visual Studio Code 的终端上运行 python3 main.py 时,应用程序的默认字体是 Cantarell 11

当我从 gnome-terminal 运行 python3 main.py 时,默认字体是 Ubuntu 11

所以问题不在于 python...

当我从普通终端应用程序运行时解决。

【讨论】:

以上是关于python - Gtk.Settings 的默认字体错误的主要内容,如果未能解决你的问题,请参考以下文章

python 多个版本默认路径设置

Python 默认参数值

在python函数中默认参数的一些坑

Ubuntu将python命令默认指向python3

关于python带默认值的参数只能放在后面的问题

Python默认版本修改