On 12/22/2010 05:44 PM, Damon Chaplin wrote:
On Wed, 2010-12-22 at 09:01 +0000, Shashank Bandari wrote:Hi, I am trying to use a custom item to draw objects onto the canvas on a mouse click. The item is not displayed on mouse click. However if I minimise the window and then maximise, the item is displayed. The code is shown below. #!/usr/bin/env python import sys import pygtk import string pygtk.require('2.0') import gtk import gobject import gtk.glade import goocanvas import cairo import os.path from Objects import GeneratorItem class MainWindow: def __init__(self): self.edit_state=0 self.builder = gtk.Builder() self.builder.add_from_file("sample_glade.glade") self.window=self.builder.get_object("sample_window") self.canvas_window=self.builder.get_object("main_canvas") #Scrolled Window self.canvas=goocanvas.Canvas() self.canvas_window.add(self.canvas) self.window.show_all() self.canvas.connect("button_release_event",self.canvas_mouse_up,None) def canvas_mouse_up(self,item,event,cr): root = self.canvas.get_root_item() item = GeneratorItem.GeneratorItem(x=100, y=100, width=100, height=100,line_width=20) root.add_child(item) self.canvas.request_update() self.canvas_window.show_all() window=MainWindow() gtk.main() GeneratorItem is the sample CustomRectItem from the demos directory. Kindly suggest the points I am missing in the code.It looks like it should work. Does the item display correctly if you add it when you create the canvas? Are you sure canvas_mouse_up() is being called? Damon _______________________________________________ goocanvas-list mailing list goocanvas-list gnome org http://mail.gnome.org/mailman/listinfo/goocanvas-list Hi Damon, I have checked it by adding a print statement in the canvas_move_up() function and it is being called on mouse release event. The sample code along with the glade file is attached for further reference. The issue is that I can see the item on canvas if I minimize and then maximize the window. -- Shashank Bandari |
Attachment:
sample.tar
Description: Unix tar archive