我最近开始使用glade,python gtk +和cairo来构建GUI应用程序。我构建了一个DrawingArea小部件,其中我使用了pixbuf来绘制图像。但是当我尝试在图像上绘制形状时,形状会在图像后面绘制。
def on_draw(self, wid, cr):
#cr.rectangle(1500, 300, 400, 800)
#cr.stroke()
self.pb = GdkPixbuf.Pixbuf.new_from_file_at_scale("image2.jpg", 1920, 1080, True)
Gdk.cairo_set_source_pixbuf(cr, self.pb, 0, 0)
cr.paint()
有没有办法让形状在图像上?
对不起这个愚蠢的问题。我刚认识这个。
为什么不在图像顶部而不是在图像后面绘制形状?
因此,首先绘制形状然后绘制图像,而不是反过来。首先绘制图像,然后绘制形状。
def on_draw(self, wid, cr):
self.pb = GdkPixbuf.Pixbuf.new_from_file_at_scale("image2.jpg", 1920, 1080, True)
Gdk.cairo_set_source_pixbuf(cr, self.pb, 0, 0)
cr.paint()
cr.set_source_rgb(0, 0, 0)
cr.rectangle(1500, 300, 400, 800)
cr.stroke()