I have the following code, that uses 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)
I'm trying to port it to pygobject, but there is no class Pango.AttrFamily, neither Pango.AttrWeight, neither Pango.AttrForeground (and I can not instantiate a Pango.AttrSize).
The question is: how to use pango_attr_size_new
, pango_attr_weight_new
, pango_attr_family_new
and pango_attr_foreground_new
through instrospection?
I know I could use markup to do this, but 1. using attributes would keep things simpler and 2. I want to know what is happening here! I've already spent a lot of time trying to solve it.
Edit: As the method override_font
is deprecated you should use CSS as is described at this page - https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-override-font
The rest of the answer stays for history purposes.
I have no idea why that wouldn't work.
Here's a method to do it.
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)
So far the easiest way I found to do it. Late answer, but better late than never.
Just in case some resources for Pango and using the above code. I'm not sure if all the documentation for Pango applies to gtk3, but it worked for me.
Pango context set font description
Pango font description
Pango fonts in gtk
Pango layout
GtkWidget inherited by text editors among other objects.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With