##CSC 323 ##May 12, 2010 ##ButtonCreator.py: This is a factory method used for creating buttons from tkinter import * class ButtonCreator: """Creates a button""" def __init__(self, parent, name, callback=None, action="", \ width=25, background = "White", packOption = TOP, \ padx = 0, pady = 0, activebackground = "White", radio = 0, \ radiovar = 0, radioval = 0, radioind = 0): """Initializes buttons with a parent frame, a name, and a callback function/event tuple""" self.parent = parent self.name = name self.callbacks = [] self.width = width self.background = background self.packOption = packOption self.padx = padx self.pady = pady self.activebg = activebackground self.radio = radio self.radiovar = radiovar self.radioval = radioval self.radioind = radioind if self.radio == 0: self.button = Button(self.parent, text = self.name, \ width = self.width, \ background = self.background, \ activebackground = self.activebg) else: self.button = Radiobutton(self.parent, text = self.name, variable = self.radiovar, \ value = self.radioval, width = self.width, \ background = self.background, \ activebackground = self.background, indicatoron = self.radioind) if callback != None: self.addCallback(callback, action) self.button.pack(side=packOption, padx = self.padx, pady = self.pady) def addCallback(self, callback, action=""): """Couples an event and a callback function""" self.callbacks.append((callback, action)) self.button.bind(action, callback) def addGrid(self, i, j): import time #print(time.mktime(time.localtime())) self.button.grid(column = i, row = j) #print(time.mktime(time.localtime()))