Ho una piccola applicazione che usa un DrawingArea
per disegnare una mappa semplice usando PyGObject
e GTK3
.Come disegnare un GdkPixbuf usando GTK3 e PyGObject
carico un Pixbuf
utilizzando
from gi.repository import Gtk, GdkPixbuf
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size("logo.png", 25, 25)
e quindi provare a disegnarlo in DrawingArea
's disegnare segnale evento
def draw(self, widget, context):
window = widget.get_window()
ctx = window.cairo_create()
ctx.set_source_pixbuf(pixbuf, 0, 0)
ma ottengo il messaggio di errore
"AttributeError: 'cairo.Context' object has no attribute 'set_source_pixbuf'"
Se sto leggendo il Gtk2 to Gtk3 migration guide correttamente, questo dovrebbe funzionare. Cosa sto sbagliando?
Sei sicuro che stai ricevendo qualcosa drawable ritorno da get_window ? – stark
Sì, viene visualizzato un oggetto '' oggetto, quindi viene realizzato il widget DrawingArea. Mi sembra di essere in perdita di come si suppone che il disegno di pixbuf in Gtk3 funzioni. –
gnirx