有没有一种简单的方法来更改GTK中文本元素的字体大小?目前我所能做的最好的方式是在标签上执行set_markup
,使用一些愚蠢的东西:
lbl.set_markup("<span font_desc='Tahoma 5.4'>%s</span>" % text)
这需要我设置字体,看起来有很多开销(需要解析标记),而且更改按钮等的字体大小会很繁琐。有更好的方法吗?
如果您想在应用程序中全局更改字体,我建议使用gtkrc(然后变成了一个谷歌问题,“gtkrc字体”查询将带领我们到这个ubuntu论坛链接,其中包含以下gtkrc文件的代码段):
style "font"
{
font_name = "Corbel 8"
}
widget_class "*" style "font"
gtk-font-name = "Corbel 8"
替换字体以满足你或用户的需求。
这样用户将获得一致的使用体验,并且能够轻松更改设置,而不需要涉及代码,同时你也无需处理维护个人配置相关代码所带来的额外开销。如果您对widget_class有更精确的定义,则可以使此设置更加具体化。
不同平台可能会有所不同,但是据我所知,如果使用了GTK,则该文件始终位于某个位置,并允许用户负责呈现细节。
C语言中,您可以做到:
gtk_widget_modify_font(lbl, pango_font_description_from_string("Tahoma 5.4"));
pangoFont = pango.FontDescription("Tahoma 5.4")
lbl.modify_font(pangoFont)
pango_font_description_free()
进行释放(这在pango_font_description_from_string()
的文档中并不明显)。除此之外,这是一个可行的解决方案。 - GTK 1.2.6 fanboy