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