| from Tkinter import * | 
 |  | 
 | # This program shows how to use the "after" function to make animation. | 
 |  | 
 | class Test(Frame): | 
 |     def printit(self): | 
 | 	print "hi" | 
 |  | 
 |     def createWidgets(self): | 
 | 	self.QUIT = Button(self, text='QUIT', foreground='red',  | 
 | 			   command=self.quit) | 
 | 	self.QUIT.pack(side=LEFT, fill=BOTH) | 
 |  | 
 | 	self.draw = Canvas(self, width="5i", height="5i") | 
 |  | 
 | 	# all of these work.. | 
 | 	self.draw.create_rectangle(0, 0, 10, 10, tags="thing", fill="blue") | 
 | 	self.draw.pack(side=LEFT) | 
 |  | 
 |     def moveThing(self, *args): | 
 | 	# move 1/10 of an inch every 1/10 sec (1" per second, smoothly) | 
 | 	self.draw.move("thing", "0.01i", "0.01i") | 
 | 	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() |