Mar*_*aro 9 python pango pygobject gtk3
我有以下代码,使用pygtk:
attr = pango.AttrList()
attr.change(pango.AttrSize((
50 * window_height / 100) * 1000, 0, -1))
attr.change(pango.AttrFamily("Sans", 0, -1))
attr.change(pango.AttrWeight(pango.WEIGHT_BOLD, 0, -1))
attr.change(pango.AttrForeground(65535, 65535, 65535, 0, -1))
self.label.set_attributes(attr)
Run Code Online (Sandbox Code Playgroud)
我正在尝试将它移植到pygobject,但没有类Pango.AttrFamily,既没有Pango.AttrWeight,也没有Pango.AttrForeground(我无法实例化Pango.AttrSize).
现在的问题是:如何使用pango_attr_size_new,pango_attr_weight_new,pango_attr_family_new和pango_attr_foreground_new通过instrospection?
我知道我可以使用标记来做到这一点,但是1.使用属性可以使事情更简单2.我想知道这里发生了什么!我已经花了很多时间试图解决它.
编辑:由于该方法override_font已弃用,您应该使用本页所述的 CSS - https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-override-font
其余答案保留用于历史目的。
我不知道为什么那行不通。
这是一种方法。
def set_global_styles(self, editor_widget):
pango_context = editor_widget.create_pango_context()
font_description = pango_context.get_font_description()
increase = 14 #pt 14
font_size = 1024*increase
font_description.set_size(font_size)
editor_widget.override_font(font_description)
Run Code Online (Sandbox Code Playgroud)
到目前为止我发现的最简单的方法。迟到的答复,但迟到总比不好。
以防万一 Pango 的一些资源并使用上面的代码。我不确定 Pango 的所有文档是否都适用于 gtk3,但它对我有用。
GtkWidget 由文本编辑器和其他对象继承。
| 归档时间: |
|
| 查看次数: |
1604 次 |
| 最近记录: |