繁体   English   中英

使用 Gtk 和 pycairo 在图像上绘制形状

[英]Draw a shape on top of an image using Gtk and pycairo

我最近开始使用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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM