【问题标题】:How can I change the font size in GTK?如何更改 GTK 中的字体大小?
【发布时间】:2015-02-11 16:04:34
【问题描述】:

有没有一种简单的方法可以在 GTK 中更改文本元素的字体大小?现在我能做的最好的就是在标签上做set_markup,用一些愚蠢的东西:

lbl.set_markup("<span font_desc='Tahoma 5.4'>%s</span>" % text)

这 1) 需要我设置字体,2) 似乎有很多开销(必须解析标记),以及 3) 更改按钮等的字体大小会很烦人。有没有更好的办法?

【问题讨论】:

  • 今天我很惊讶地发现 font_desc 仅适用于字体大小。这对我来说并不明显。

标签: python fonts gtk pygtk gtk2


【解决方案1】:

如果您想在您的应用程序中整体更改字体,我会将这项工作留给 gtkrc(然后变成谷歌问题,“gtkrc 字体”查询将我们带到this ubuntu forums link,它具有以下 sn- gtkrc 文件的 p):

style "font"
{
font_name = "Corbel 8"
}
widget_class "*" style "font"
gtk-font-name = "Corbel 8"

(将字体替换为您/用户需要的字体)

然后,用户将获得一致的体验,并且能够轻松更改设置,而无需他们插入代码,也无需处理维护个人配置相关代码的开销。我知道如果您对 widget_class 有更精确的定义,您可以使此设置更具体。

YMMV 适用于不同平台,但如果使用 GTK,AFAIK 这个文件总是存在于某个位置,并允许用户负责演示细节。

【讨论】:

【解决方案2】:

在 C 中,你可以这样做:

gtk_widget_modify_font(lbl, pango_font_description_from_string("Tahoma 5.4"));

在 PyGTK 中,我相信它是这样的:

pangoFont = pango.FontDescription("Tahoma 5.4")
lbl.modify_font(pangoFont)

【讨论】:

  • 在 C 中这会造成内存泄漏,因为 pango 字体描述需要在使用后用pango_font_description_free () 释放(这在pango_font_description_from_string () 本身的文档中并不明显)。除此之外,这是一个可能的解决方案。
  • 使用后立即释放?
猜你喜欢
  • 2011-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 2016-09-01
  • 2011-11-03
  • 2012-04-17
  • 2010-12-13
相关资源
最近更新 更多