2015-04-26 56 views
1

我想繪製一個Gtk.Image小部件的東西。問題是我的繪圖必須繪製在原始圖片的頂部。我試過這樣做:如何在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插件的圖片之上的東西嗎?

+0

'widget.draw(g)'再次發出'draw'信號並最終程序崩潰。 – elya5

+0

是的,但如何繪製圖像,然後在圖像頂部繪製矩形? – BPS

回答

0

使用widget.draw導致被解僱的信號,它調用你的函數,它標誌着....要阻止這種情況發生,你需要在調用繪製之前斷開信號。我認爲你只需要調用__on_image_draw一次,這意味着你可以在你的調用上面添加這個來繪製:widget.disconnect_by_func(__on_image_draw)