Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更改GTK中的字体大小?_Python_Fonts_Gtk_Pygtk_Gtk2 - Fatal编程技术网

Python 如何更改GTK中的字体大小?

Python 如何更改GTK中的字体大小?,python,fonts,gtk,pygtk,gtk2,Python,Fonts,Gtk,Pygtk,Gtk2,有没有一种简单的方法来更改GTK中文本元素的字体大小?现在我能做的最好的事情就是在标签上做set\u markup,做一些愚蠢的事情,比如: lbl.set_markup("<span font_desc='Tahoma 5.4'>%s</span>" % text) lbl.set\u标记(“%s”%text) 这1)需要我设置字体,2)看起来开销很大(必须解析标记),3)更改按钮的字体大小会让人恼火。有更好的方法吗?在C中,您可以执行以下操作: gtk_widge

有没有一种简单的方法来更改GTK中文本元素的字体大小?现在我能做的最好的事情就是在标签上做
set\u markup
,做一些愚蠢的事情,比如:

lbl.set_markup("<span font_desc='Tahoma 5.4'>%s</span>" % text)
lbl.set\u标记(“%s”%text)
这1)需要我设置字体,2)看起来开销很大(必须解析标记),3)更改按钮的字体大小会让人恼火。有更好的方法吗?

在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)

若你们想在你们的应用程序中整体改变字体,我会把这个工作交给gtkrc(然后变成一个谷歌问题,“gtkrc字体”查询会给我们带来gtkrc文件的以下片段):

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

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


YMMV适用于不同的平台,但AFAIK如果使用GTK,此文件始终存在于某些位置,并允许用户负责演示细节。

是否可以仅为我的应用程序使用自定义gtkrc文件?如果是这样的话,我该怎么做呢?试试下面的想法:链接在C中是死的,这会造成内存泄漏,因为pango字体描述在使用后需要使用
pango\u font\u description\u free()
释放(这在
pango\u font\u description\u from\u string()
本身的文档中并不明显)。除此之外,这是一个可能的解决方案。使用后立即释放?今天我惊讶地发现font_desc仅与字体大小一起工作。这对我来说并不明显。
style "font"
{
font_name = "Corbel 8"
}
widget_class "*" style "font"
gtk-font-name = "Corbel 8"