from Tkinter import * class RubberBandCanvas(Canvas): def __init__(self, master=None, **kwargs): Canvas.__init__(self, master, **kwargs) self.bind("", self.on_button_press) self.bind("", self.on_move_press) self.bind("", self.on_button_release) self.line = None self.points = [] def on_button_press(self, event): self.points.append((event.x, event.y)) def on_move_press(self, event): self.delete(self.line) self.line = self.create_line(self.points + [(event.x, event.y)]) def on_button_release(self, event): self.delete(self.line) self.create_line(self.points + [(event.x, event.y)], fill="blue") class Application(Frame): def create_widgets(self): self.canvas = RubberBandCanvas(self) self.canvas.pack(fill=BOTH, expand=YES) def __init__(self, master=None): Frame.__init__(self, master) self.pack() self.create_widgets() app = Application() app.master.title("Rubber Band Canvas") app.mainloop()