我有一個小應用程序,它使用DrawingArea
繪製使用PyGObject
和GTK3
的簡單地圖。如何使用GTK3和PyGObject繪製GdkPixbuf
我使用
from gi.repository import Gtk, GdkPixbuf
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size("logo.png", 25, 25)
加載Pixbuf
,然後嘗試繪製在DrawingArea
的繪製事件信號
def draw(self, widget, context):
window = widget.get_window()
ctx = window.cairo_create()
ctx.set_source_pixbuf(pixbuf, 0, 0)
,但我得到的錯誤信息
"AttributeError: 'cairo.Context' object has no attribute 'set_source_pixbuf'"
如果我正確閱讀Gtk2 to Gtk3 migration guide,這應該起作用。 我在做什麼錯?
你確定你是從get_window得到的東西繪製回? – stark 2012-04-22 20:50:41
是的,我在0xb71aab44(GdkX11Window在0x9db5aa0)>對象處得到一個'gtk.gdk.X11Window對象,所以DrawingArea小部件就實現了。我似乎不知道在Gtk3中如何繪製pixbufs應該工作。 – gnirx 2012-04-22 21:02:51