Python GUI Tk : Button

 Button cursor: gumby

from Tkinter import *
widget = Button(text='Spam', padx=10, pady=10)
widget.pack(padx=20, pady=20)
widget.config(cursor='gumby')

widget.config(font=('helvetica', 20, 'underline italic'))
mainloop()

Button focus

from Tkinter import *

class MyApp:
  def __init__(self, parent):
    self.myParent = parent   
    self.myContainer1 = Frame(parent)
    self.myContainer1.pack()
    
    button_name = "OK"
    self.button1 = Button(self.myContainer1,
      command=self.buttonHandler(button_name, 1, "Good stuff!"))
      
    self.button1.configure(text=button_name)  
    self.button1.pack(side=LEFT)
    self.button1.focus_force()  # Put keyboard focus on button1    
    
    button_name = "Cancel"
    self.button2 = Button(self.myContainer1, 
      command=self.buttonHandler(button_name, 2, "Bad  stuff!")) 
       
    self.button2.configure(text=button_name)
    self.button2.pack(side=LEFT)   
        
    
  def buttonHandler(self, arg1, arg2, arg3):   
         print ""  
          
   def buttonHandler_a(self, event, arg1, arg2, arg3):
         print ""    
    
root = Tk()
myapp = MyApp(root)
root.mainloop()

Menu Button Demo

from Tkinter import *    
root    = Tk()
mbutton = Menubutton(root, text='Food')     # the pull-down stands alone
picks   = Menu(mbutton)               
mbutton.config(menu=picks)           
picks.add_command(label='A',  command=root.quit)
picks.add_command(label='B',  command=root.quit)
picks.add_command(label='C', command=root.quit)
mbutton.pack()
mbutton.config(bg='white', bd=4, relief=RAISED)
root.mainloop()

Menu Button Demo

from Tkinter import *    
root    = Tk()
mbutton = Menubutton(root, text='Food')     # the pull-down stands alone
picks   = Menu(mbutton)               
mbutton.config(menu=picks)           
picks.add_command(label='A',  command=root.quit)
picks.add_command(label='B',  command=root.quit)
picks.add_command(label='C', command=root.quit)
mbutton.pack()
mbutton.config(bg='white', bd=4, relief=RAISED)
root.mainloop()

Radio Button Menu

from Tkinter import *

class TestMenu:
    def __init__(self, master):
  self.master = master
  self.menubar = Menu(self.master)

        self.radmenu = Menu(self.menubar)
        self.radmenu.add_radiobutton(label='A')
        self.radmenu.add_radiobutton(label='B')
        self.radmenu.add_radiobutton(label='C')
        self.radmenu.add_radiobutton(label='D')
        self.radmenu.add_radiobutton(label='E')
        self.radmenu.add_radiobutton(label='F')
        self.radmenu.add_radiobutton(label='G')
        self.radmenu.add_radiobutton(label='H')
        self.radmenu.add_radiobutton(label='I')

        self.menubar.add_cascade(label="Radiobutton Menu", menu=self.radmenu)

  self.top = Toplevel(menu=self.menubar, width=500, relief=RAISED,
                            borderwidth=2)

def main():
    root = Tk()
    root.withdraw()
    app = TestMenu(root)
    root.mainloop()

if __name__ == '__main__':
    main()
Check box menu
from Tkinter import *

class TestMenu:
    def __init__(self, master):
  self.master = master
  self.menubar = Menu(self.master)

        self.chkmenu = Menu(self.menubar)
        self.chkmenu.add_checkbutton(label='A')
        self.chkmenu.add_checkbutton(label='B')
        self.chkmenu.add_checkbutton(label="C")
        self.chkmenu.add_checkbutton(label='D')
        self.chkmenu.add_checkbutton(label='E')    
        self.chkmenu.invoke(self.chkmenu.index('C'))

        self.menubar.add_cascade(label="Checkbutton Menu", menu=self.chkmenu)

  self.top = Toplevel(menu=self.menubar, width=500, relief=RAISED,
                            borderwidth=2)

def main():
    root = Tk()
    root.withdraw()
    app = TestMenu(root)
    root.mainloop()

if __name__ == '__main__':
    main()

Add a button to frame


from Tkinter import *                   

class Hello(Frame):                     
    def __init__(self, parent=None):    
        Frame.__init__(self, parent)
        self.pack()
        self.make_widgets()

    def make_widgets(self):             
        widget = Button(self, text='Hello world', command=self.quit)
        widget.pack(side=LEFT)

if __name__ == '__main__':  Hello().mainloop()
Simple Button Action

from Tkinter import *                   

class Hello(Frame):                     
    def __init__(self, parent=None):    
        Frame.__init__(self, parent)
        self.pack()
        self.make_widgets()

    def make_widgets(self):             
        widget = Button(self, text='Hello world', command=self.quit)
        widget.pack(side=LEFT)

if __name__ == '__main__':  Hello().mainloop()
Disable a button
from Tkinter import *                   

class Hello(Frame):                     
    def __init__(self, parent=None):    
        Frame.__init__(self, parent)
        self.pack()
        self.make_widgets()

    def make_widgets(self):             
        widget = Button(self, text='Hello world', command=self.quit)
        widget.pack(side=LEFT)
        widget.configure(state=DISABLED, background='cadetblue')

if __name__ == '__main__':  Hello().mainloop()
Enable a button
from Tkinter import *                   

class Hello(Frame):                     
    def __init__(self, parent=None):    
        Frame.__init__(self, parent)
        self.pack()
        self.make_widgets()

    def make_widgets(self):             
        widget = Button(self, text='Hello world', command=self.quit)
        widget.pack(side=LEFT)
        widget.configure(state=DISABLED, background='cadetblue')
        widget.configure(state=NORMAL, background='red')

if __name__ == '__main__':  Hello().mainloop()
Set Button to get focus
from Tkinter import *                   

class Hello(Frame):                     
    def __init__(self, parent=None):    
        Frame.__init__(self, parent)
        self.pack()
        self.make_widgets()

    def make_widgets(self):             
        widget = Button(self, text='Hello world', command=self.quit)
        widget.pack(side=LEFT)
        widget.configure(state=DISABLED, background='cadetblue')
        widget.configure(state=NORMAL, background='red')
        widget.focus_set()

if __name__ == '__main__':  Hello().mainloop()
Button Border styles
from Tkinter import *

class GUI:
    def __init__(self):
     self.root = Tk()
        self.root.title('Button Styles')
        for bdw in range(5):
            setattr(self, 'of%d' % bdw, Frame(self.root, borderwidth=0))
            Label(getattr(self, 'of%d' % bdw),
                  text='borderwidth = %d  ' % bdw).pack(side=LEFT)
            for relief in [RAISED, SUNKEN, FLAT, RIDGE, GROOVE, SOLID]:
                Button(getattr(self, 'of%d' % bdw), text=relief, borderwidth=bdw,
                       relief=relief, width=10,
                       command=lambda s=self, r=relief, b=bdw: s.prt(r,b))\
                          .pack(side=LEFT, padx=7-bdw, pady=7-bdw)
            getattr(self, 'of%d' % bdw).pack()

    def prt(self, relief, border):
        print '%s:%d' % (relief, border)

myGUI = GUI()
myGUI.root.mainloop()
Button action to set Button background

from Tkinter import *

class App:
    def __init__(self, master):

        frame = Frame(master)
        frame.pack()

        self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
        self.button.pack(side=LEFT)

        self.hi_there = Button(frame, text="Hello", command=self.say_hi)
        self.hi_there.pack(side=LEFT)

    def say_hi(self):
    if self.hi_there["background"] == "green":  
      self.hi_there["background"] = "yellow"
    else:
      self.hi_there["background"] = "green"

root = Tk()

app = App(root)

root.mainloop()
Button event binding: without passing the event as an argument
from Tkinter import *

class MyApp:
  def __init__(self, parent):
    self.myParent = parent   
    self.myContainer1 = Frame(parent)
    self.myContainer1.pack()
    
    button_name = "OK"
    
    # command binding
    self.button1 = Button(self.myContainer1,
      command = lambda 
      arg1=button_name, arg2=1, arg3="Good stuff!" :
      self.buttonHandler(arg1, arg2, arg3)
      )
    
    # event binding -- passing the event as an argument
    self.button1.bind("<Return>", 
      lambda 
      event, arg1=button_name, arg2=1, arg3="Good stuff!" : 
      self.buttonHandler_a(event, arg1, arg2, arg3)
      )
         
    self.button1.configure(text=button_name, background="green")  
    self.button1.pack(side=LEFT)
    self.button1.focus_force()  # Put keyboard focus on button1    
    
    button_name = "Cancel"
    
    self.button2 = Button(self.myContainer1,
      command = lambda 
      arg1=button_name, arg2=2, arg3="Bad  stuff!": 
      self.buttonHandler(arg1, arg2, arg3)
      )

    self.button2.bind("<Return>", 
      lambda 
      event, arg1=button_name, arg2=2, arg3="Bad  stuff!" : 
      self.buttonHandler(arg1, arg2, arg3)
      )
  
    self.button2.configure(text=button_name, background="red")
    self.button2.pack(side=LEFT)   
    
    
    
   def buttonHandler_a(self, event, argument1, argument2, argument3):
    print "buttonHandler_a received event", event
    self.buttonHandler(argument1, argument2, argument3)
    
root = Tk()
myapp = MyApp(root)
root.mainloop()
Button focus
from Tkinter import *

class MyApp:
  def __init__(self, parent):
    self.myParent = parent   
    self.myContainer1 = Frame(parent)
    self.myContainer1.pack()
    
    button_name = "OK"
    self.button1 = Button(self.myContainer1,
      command=self.buttonHandler(button_name, 1, "Good stuff!"))
      
    self.button1.configure(text=button_name)  
    self.button1.pack(side=LEFT)
    self.button1.focus_force()  # Put keyboard focus on button1    
    
    button_name = "Cancel"
    self.button2 = Button(self.myContainer1, 
      command=self.buttonHandler(button_name, 2, "Bad  stuff!")) 
       
    self.button2.configure(text=button_name)
    self.button2.pack(side=LEFT)   
        
    
  def buttonHandler(self, arg1, arg2, arg3):   
         print ""  
          
   def buttonHandler_a(self, event, arg1, arg2, arg3):
         print ""    
    
root = Tk()
myapp = MyApp(root)
root.mainloop()

create a button, and put it into a Container
from Tkinter import *

root = Tk()
 
myContainer1 = Frame(root)
myContainer1.pack()

button1 = Button(myContainer1)      
button1["text"]= "Hello, World!"    
button1["background"] = "green"     
button1.pack()                      

root.mainloop()

Set Button background by property name
from Tkinter import *

root = Tk()
 
myContainer1 = Frame(root)
myContainer1.pack()

button1 = Button(myContainer1)      
button1["text"]= "Hello, World!"    
button1["background"] = "green"     
button1.pack()                      

root.mainloop()
Specify the button's properties
from Tkinter import *

class MyApp:
  def __init__(self, parent):
    self.myContainer1 = Frame(parent)
    self.myContainer1.pack()
    
    self.button1 = Button(self.myContainer1)
    self.button1["text"] = "aaa"   
    self.button1["background"] = "green"      
    self.button1.pack()  

    self.button2 = Button(self.myContainer1)
    self.button2.configure(text="bbb") 
    self.button2.configure(background="tan")               
    self.button2.pack()  
    

    self.button3 = Button(self.myContainer1)
    self.button3.configure(text="ccc", background="cyan")  
    self.button3.pack()  
      
    self.button4 = Button(self.myContainer1, text="ddd", background="red")
    self.button4.pack()  
  
    
root = Tk()
myapp = MyApp(root)
root.mainloop()

Button action inside a class

from Tkinter import *

class App:
    def __init__(self, master):

        frame = Frame(master)
        frame.pack()

        self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
        self.button.pack(side=LEFT)

        self.hi_there = Button(frame, text="Hello", command=self.say_hi)
        self.hi_there.pack(side=LEFT)

    def say_hi(self):
        print "hi!"

root = Tk()

app = App(root)

root.mainloop()
Button width
from Tkinter import *

root = Tk()

def callback():
    print "called the callback!"

# create a toolbar
toolbar = Frame(root)

b = Button(toolbar, text="new", width=16, command=callback)
b.pack(side=LEFT, padx=2, pady=2)

b = Button(toolbar, text="open", width=6, command=callback)
b.pack(side=LEFT, padx=2, pady=2)

toolbar.pack(side=TOP, fill=X)

mainloop()
Buttons on a toolbar
from Tkinter import *

root = Tk()

def callback():
    print "called the callback!"

# create a toolbar
toolbar = Frame(root)

b = Button(toolbar, text="new", width=6, command=callback)
b.pack(side=LEFT, padx=2, pady=2)

b = Button(toolbar, text="open", width=6, command=callback)
b.pack(side=LEFT, padx=2, pady=2)

toolbar.pack(side=TOP, fill=X)

mainloop()
Button foreground color

from Tkinter import *

class App:
    def __init__(self, master):

        frame = Frame(master)
        frame.pack()

        self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
        self.button.pack(side=LEFT)

        self.hi_there = Button(frame, text="Hello", command=self.say_hi)
        self.hi_there.pack(side=LEFT)

    def say_hi(self):
        print "hi there, everyone!"

root = Tk()

app = App(root)

root.mainloop()
Creating buttons
from Tkinter import *

root = Tk()
root.title("Demonstrates creating buttons")
root.geometry("200x85")

app = Frame(root)
app.grid()

bttn1 = Button(app, text = "OK!")
bttn1.grid()

bttn2 = Button(app)
bttn2.grid()
bttn2.configure(text = "Cancel")

bttn3 = Button(app)
bttn3.grid()
bttn3["text"]= "Apply"

root.mainloop()

Button single click and double click
from Tkinter import *

def hello(event):
    print 'Double Click to exit'

def quit(event):       
    print 'You double clicked...'        
    import sys; sys.exit() 

widget = Button(None, text='Hello event world')
widget.pack()
widget.bind('<Button-1>', hello)             # bind left mouse clicks
widget.bind('<Double-1>', quit)              # bind double left clicks
widget.mainloop()
Use lambda to generate a call back function for a button
from Tkinter import *
from sys import stdout, exit      

widget = Button(None,             
             text='Hello event world', 
             command=(lambda: stdout.write('Hello lambda world\n') or exit()) )
widget.pack()
widget.mainloop()
adds user-defined callbacks as button action
from Tkinter import *

def quit():        
    print 'Hello...'        
    import sys; sys.exit() 

widget = Button(None, text='Hello event world', command=quit)
widget.pack()
widget.mainloop()
Subclasses button
from Tkinter import *

class HelloButton(Button):
    def __init__(self, parent=None, **config):     
        Button.__init__(self, parent, config)      
        self.pack()
        self.config(command=self.callback)
    def callback(self):                            
        print 'Hi'                   
        self.quit()
 
if __name__ == '__main__':
    HelloButton(text='Hello Button').mainloop()
Subclass HelloButton: redefine press-handler method
from Tkinter import *

class HelloButton(Button):
    def __init__(self, parent=None, **config):       
        Button.__init__(self, parent, config)        
        self.pack()
        self.config(command=self.callback)
    def callback(self):                              
        print 'Hiiii...'                     
        self.quit()

class MyButton(HelloButton):        
    def callback(self):             
        print "Ignoring press!..."

if __name__ == '__main__':
    MyButton(None, text='My Button').mainloop()
Sub class button: add callback method and pack myself
from Tkinter import *

class HelloButton(Button):
    def __init__(self, parent=None, side=TOP, **config): 
        Button.__init__(self, parent, config)            
        self.pack(side=side)                             
        self.config(command=self.callback)
    def callback(self):
        print 'callback...'                   
        self.quit()
 
if __name__ == '__main__':
    HelloButton(side=LEFT, text='Hello Button').mainloop()
Sub class button: add callback method and use a dictionary
from Tkinter import *

class HelloButton(Button):
    def __init__(self, parent=None, config={}):   
        Button.__init__(self, parent, config)     
        self.pack()
        self.config(command=self.callback)
    def callback(self):                                 
        print 'Hi...' 
        self.quit()
 
if __name__ == '__main__':
    HelloButton(None, {'text': 'Hi'}).mainloop()
Button border size

from Tkinter import *
widget = Button(text='Spam', padx=10, pady=10)
widget.pack(padx=20, pady=20)
widget.config(bd=8, relief=RAISED)

widget.config(font=('helvetica', 20, 'underline italic'))
mainloop()
           
Button border effects: RAISED
from Tkinter import *
widget = Button(text='Spam', padx=10, pady=10)
widget.pack(padx=20, pady=20)
widget.config(bd=8, relief=RAISED)

widget.config(font=('helvetica', 20, 'underline italic'))
mainloop()
Button background, foreground and font
from Tkinter import *
widget = Button(text='Spam', padx=10, pady=10)
widget.pack(padx=20, pady=20)
widget.config(bg='dark green', fg='white')
widget.config(font=('helvetica', 20, 'underline italic'))
mainloop()
Button width and height
from Tkinter import *
widget = Button(text='Spam', padx=50, pady=10)
widget.pack(padx=20, pady=20)
mainloop()
Config button properties
from Tkinter import *
widget = Button(text='Spam', padx=10, pady=10)
widget.pack(padx=20, pady=20)
widget.config(cursor='gumby')
widget.config(bd=8, relief=RAISED)
widget.config(bg='dark green', fg='white')
widget.config(font=('helvetica', 20, 'underline italic'))
mainloop()
Add gif image to a button
gifdir = "./"
from Tkinter import *
win = Tk()
igm = PhotoImage(file=gifdir+"logo.gif")
Button(win, image=igm).pack()
win.mainloop()
Bind mouse single click and double click to a button
from Tkinter import *

def hello(event):
    print 'Double Click to exit'

def quit(event):       
    print 'You double clicked...'        
    import sys; sys.exit() 

widget = Button(None, text='Hello event world')
widget.pack()
widget.bind('<Button-1>', hello)             # bind left mouse clicks
widget.bind('<Double-1>', quit)              # bind double left clicks
widget.mainloop()
LED control
from Tkinter   import *

SQUARE      = 1
ROUND       = 2
ARROW       = 3

POINT_DOWN  = 0
POINT_UP    = 1
POINT_RIGHT = 2
POINT_LEFT  = 3

STATUS_OFF   = 1
STATUS_ON    = 2
STATUS_WARN  = 3
STATUS_ALARM = 4
STATUS_SET   = 5

class DummyClass:
    pass

Color  = DummyClass()

Color.PANEL     = '#545454'
Color.OFF       = '#656565'
Color.ON        = '#00FF33'
Color.WARN      = '#ffcc00'
Color.ALARM     = '#ff4422'

class LED:
    def __init__(self, master=None, width=25, height=25, 
                 appearance=FLAT,
                 status=STATUS_ON, bd=1, 
                 bg=None, 
                 shape=SQUARE, outline="",
                 blink=0, blinkrate=1,
                 orient=POINT_UP,
                 takefocus=0):
        # preserve attributes
        self.master       = master
        self.shape        = shape
        self.onColor      = Color.ON
        self.offColor     = Color.OFF
        self.alarmColor   = Color.ALARM
        self.warningColor = Color.WARN
        self.specialColor = '#00ffdd'
        self.status       = status
        self.blink        = blink
        self.blinkrate    = int(blinkrate)
        self.on           = 0
        self.onState      = None

        if not bg:
            bg = Color.PANEL

        ## Base frame to contain light
        self.frame=Frame(master, relief=appearance, bg=bg, bd=bd, 
                         takefocus=takefocus)

        basesize = width
        d = center = int(basesize/2)

        if self.shape == SQUARE:
            self.canvas=Canvas(self.frame, height=height, width=width, 
                               bg=bg, bd=0, highlightthickness=0)

            self.light=self.canvas.create_rectangle(0, 0, width, height,
                                                    fill=Color.ON)
        elif self.shape == ROUND:
            r = int((basesize-2)/2)
            self.canvas=Canvas(self.frame, width=width, height=width, 
                               highlightthickness=0, bg=bg, bd=0)
            if bd > 0:
                self.border=self.canvas.create_oval(center-r, center-r, 
                                                    center+r, center+r)
                r = r - bd
            self.light=self.canvas.create_oval(center-r-1, center-r-1, 
                               center+r, center+r, fill=Color.ON,
                               outline=outline)
        else:  # Default is an ARROW
            self.canvas=Canvas(self.frame, width=width, height=width,
                               highlightthickness=0, bg=bg, bd=0)
            x = d
            y = d
            if orient == POINT_DOWN:
                self.light=self.canvas.create_polygon(x-d,y-d, x,y+d,
                               x+d,y-d, x-d,y-d, outline=outline)
            elif orient == POINT_UP:
                self.light=self.canvas.create_polygon(x,y-d, x-d,y+d,
                               x+d,y+d, x,y-d, outline=outline)
            elif orient == POINT_RIGHT:
                self.light=self.canvas.create_polygon(x-d,y-d, x+d,y,
                               x-d,y+d, x-d,y-d, outline=outline)
            elif orient == POINT_LEFT:
                self.light=self.canvas.create_polygon(x-d,y, x+d,y+d,
                               x+d,y-d, x-d,y, outline=outline)

        self.canvas.pack(side=TOP, fill=X, expand=NO)
        self.update()

    def turnon(self):
        self.status = STATUS_ON
        if not self.blink: self.update()

    def turnoff(self):
        self.status = STATUS_OFF
        if not self.blink: self.update()

    def alarm(self):
        self.status = STATUS_ALARM
        if not self.blink: self.update()

    def warn(self):
        self.status = STATUS_WARN
        if not self.blink: self.update()

    def set(self, color):
        self.status       = STATUS_SET
        self.specialColor = color
        self.update()

    def blinkon(self):
        if not self.blink:
            self.blink   = 1
            self.onState = self.status
            self.update()

    def blinkoff(self):
        if self.blink:
            self.blink   = 0
            self.status  = self.onState
            self.onState = None
            self.on      = 0
            self.update()

    def blinkstate(self, blinkstate):
        if blinkstate:
            self.blinkon()
        else:
            self.blinkoff()

    def update(self):
        # First do the blink, if set to blink
        if self.blink:
            if self.on:
                if not self.onState:
                    self.onState = self.status
                self.status  = STATUS_OFF
                self.on      = 0                            
            else:
                if self.onState:
                    self.status = self.onState     # Current ON color
                self.on = 1

        if self.status == STATUS_ON:
            self.canvas.itemconfig(self.light, fill=self.onColor)
        elif self.status == STATUS_OFF:
            self.canvas.itemconfig(self.light, fill=self.offColor)
        elif self.status == STATUS_WARN:
            self.canvas.itemconfig(self.light, fill=self.warningColor)
        elif self.status == STATUS_SET:
            self.canvas.itemconfig(self.light, fill=self.specialColor)
        else:
            self.canvas.itemconfig(self.light, fill=self.alarmColor)

        self.canvas.update_idletasks()

        if self.blink:
            self.frame.after(self.blinkrate * 1000, self.update)

if __name__ == '__main__':
    class TestLEDs(Frame):
        def __init__(self, parent=None):

            # List of Colors and Blink On/Off
            states = [(STATUS_OFF,   0),     
                      (STATUS_ON,    0),
                      (STATUS_WARN,  0),
                      (STATUS_ALARM, 0),
                      (STATUS_SET,   0),
                      (STATUS_ON,    1),
                      (STATUS_WARN,  1),
                      (STATUS_ALARM, 1),
                      (STATUS_SET,   1)]

            # List of LED types to display,
            # with sizes and other attributes
            leds = [(ROUND,  25, 25, FLAT,   0, None,        ""),
                    (ROUND,  15, 15, RAISED, 1, None,        ""),
                    (SQUARE, 20, 20, SUNKEN, 1, None,        ""),
                    (SQUARE,  8,  8, FLAT,   0, None,        ""),
                    (SQUARE,  8,  8, RAISED, 1, None,        ""),
                    (SQUARE, 16,  8, FLAT,   1, None,        ""),
                    (ARROW,  14, 14, RIDGE,  1, POINT_UP,    ""),
                    (ARROW,  14, 14, RIDGE,  0, POINT_RIGHT, ""),
                    (ARROW,  14, 14, FLAT,   0, POINT_DOWN,  "white")]

            Frame.__init__(self)              # Do superclass init
            self.pack()
            self.master.title('LED Example - Stage 1')

            # Iterate for each type of led
            for shape, w, h, app, bd, orient, outline in leds:
                frame = Frame(self, bg=Color.PANEL)
                frame.pack(anchor=N, expand=YES, fill=X)

                # Iterate for selected states
                for state, blink in states:
                    LED(frame, shape=shape, status=state,
                        width=w, height=h, appearance=app,
                        orient=orient, blink=blink, bd=bd, 
                        outline=outline).frame.pack(side=LEFT,
                                      expand=YES, padx=1, pady=1)

TestLEDs().mainloop()