Tkinker Python Tutorial

from Tkinter  import *
trace = 0 
     
class CanvasEventsDemo: 
    def __init__(self, parent=None):
        canvas = Canvas(width=300, height=300, bg='white') 
        canvas.pack()
        canvas.bind('', self.onStart)  
        canvas.bind('',     self.onGrow)   
        canvas.bind('',      self.onClear)  
        canvas.bind('', self.onMove)   
        self.canvas = canvas
        self.drawn  = None
    def onStart(self, event):
        self.start = event
        self.drawn = None
    def onGrow(self, event):                          
        canvas = event.widget
        if self.drawn: canvas.delete(self.drawn)
        objectId = canvas.create_oval(self.start.x, self.start.y, event.x, event.y)
        if trace: print objectId
        self.drawn = objectId
    def onClear(self, event):
        event.widget.delete('all')
    def onMove(self, event):
        if self.drawn:            
            if trace: print self.drawn
            canvas = event.widget
            diffX, diffY = (event.x - self.start.x), (event.y - self.start.y)
            canvas.move(self.drawn, diffX, diffY)
            self.start = event
     
CanvasEventsDemo()
mainloop()