如何在Gtk.Image上绘图?

时间:2015-04-26 14:24:44

标签: python gtk gtk3

我想在Gtk.Image小部件上绘制一些东西。问题是我的绘图必须绘制在原始图片之上。我试过这样做:

image.connect('draw', self.__on_image_draw)
...
def __on_image_draw(self, widget, g):
    widget.draw(g)
    if self.__in_crop_mode:
        g.set_source_rgb(1.0, 0.0, 0.0)
        g.set_line_width(2)
        g.rectangle(10, 10, 200, 200)
        g.stroke()
    return True

不幸的是,对widget.draw()的调用崩溃了我的程序。 :P

如何在Gtk.Image小部件中的图片上绘制一些内容?

1 个答案:

答案 0 :(得分:0)

使用widget.draw会导致信号被触发,这会调用你的函数发出信号....要阻止这种情况发生,你需要在调用draw之前断开信号。我认为你只需要调用__on_image_draw一次,这意味着你可以在你的调用上面添加这个来绘制:widget.disconnect_by_func(__on_image_draw)