from Tkinter import * # this is the same as simple-demo-1.py, but uses # subclassing. # note that there is no explicit call to start Tk. # Tkinter is smart enough to start the system if it's not already going. class Test(Frame): def printit(self): print "hi" def createWidgets(self): self.QUIT = Button(self, {'text': 'QUIT', 'fg': 'red', 'command': self.quit}) self.QUIT.pack({'side': 'bottom', 'fill': 'both'}) self.draw = Canvas(self, {"width" : "5i", "height" : "5i"}) self.speed = Scale(self, {"orient": "horiz", "from" : -100, "to" : 100}) self.speed.pack({'side': 'bottom', "fill" : "x"}) # all of these work.. self.draw.create_polygon("0", "0", "10", "0", "10", "10", "0" , "10", {"tags" : "thing"}) self.draw.pack({'side': 'left'}) def moveThing(self, *args): velocity = self.speed.get() str = float(velocity) / 1000.0 str = `str` + "i" self.draw.move("thing", str, str) self.after(10, self.moveThing) def __init__(self, master=None): Frame.__init__(self, master) Pack.config(self) self.createWidgets() self.after(10, self.moveThing) test = Test() test.mainloop()