Dibuja una imagen SVG en GTK3 desde la fuente SVG en python

Como puedo hacerlo fácilmente en PyQt así:

img = '''    Layer 1    ''' image = QtCore.QByteArray(img) self.svgwidget.load(image) 

¿Cómo puedo hacer esto en Gtk? ¿algunas ideas? 🙂 ¡gracias por adelantado!

 stream = Gio.MemoryInputStream.new_from_bytes(GLib.Bytes.new(img)) pixbuf = GdkPixbuf.Pixbuf.new_from_stream(stream, None) self.svgwidget = Gtk.Image.new_from_pixbuf(pixbuf) 

O usa la biblioteca rsvg si no te importa una dependencia adicional y quieres hacer cosas extrañas con el SVG una vez que lo hayas cargado:

 svg = Rsvg.Handle.new_from_data(img) pixbuf = svg.get_pixbuf() svgwidget = Gtk.Image.new_from_pixbuf(pixbuf) 

Para cualquier persona que quiera cargar y escalar una imagen SVG usando Gtk 3 y Python (¡preservando la calidad de imagen SVG!):

 from gi.repository import Gtk, GdkPixbuf path = "/path/to/image.svg" width = -1 height = 128 preserve_aspect_ratio = True pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(path, width, height, preserve_aspect_ratio) image = Gtk.Image() image.set_from_pixbuf(pixbuf) 

Véase también https://developer.gnome.org/gdk-pixbuf/stable/gdk-pixbuf-File-Loading.html#gdk-pixbuf-new-from-file-at-scale