from Tkinter import *


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.drawing = Canvas(self, {"width" : "5i", "height" : "5i"})

	# make a shape
	pgon = self.drawing.create_polygon("10", "10", "110", "10", "110", "110", "10" , "110", 
				 {"fill" : "red", 
				  "tags" : "weee foo groo"})

	# this is how you query an object for its attributes 
	# config options FOR CANVAS ITEMS always come back in tuples of length 5.
	# 0 attribute name
	# 1 BLANK 
	# 2 BLANK 
	# 3 default value
	# 4 current value
	# the blank spots are for consistency with the config command that 
	# is used for widgets. (remember, this is for ITEMS drawn 
	# on a canvas widget, not widgets)
	option_value = self.drawing.itemconfig(pgon, "stipple")
	print "pgon's current stipple value is -->", option_value[4], "<--"
	option_value = self.drawing.itemconfig(pgon,  "fill")
	print "pgon's current fill value is -->", option_value[4], "<-- when he is usually colored -->", option_value[3], "<--"

	## here we print out all the tags associated with this object
	option_value = self.drawing.itemconfig(pgon,  "tags")
	print "pgon's tags are", option_value[4]

	self.drawing.pack({'side': 'left'})



    def __init__(self, master=None):
	Frame.__init__(self, master)
	Pack.config(self)
	self.createWidgets()

test = Test()

test.mainloop()
