blog.humaneguitarist.org

dynamic menus with TKinter

[Sun, 22 May 2011 23:24:37 +0000]
So, I've been thinking about being lazy in regard to dynamic GUI menu creation with Python using TKinter [http://wiki.python.org/moin/TkInter]. ... and I'm waiting for it to be 8:30 so I can watch the NBA playoffs. Basically, I was trying to figure out if there was a way to create a simple button menu without having to re-write the code that creates a button for each and every function I wanted to use. So with apologies to the real programmers out there - especially if you are a Chicago Bulls fan, here's what I got. At least it works. from Tkinter import * class yadayadayada(): def __init__(self, root): #create a List with a tuple for: #1) every button that needs to be created and #2) what function it executes listOfFunctions = [("hi",self.hi),("bye",self.bye),("what",self.what)] #TK stuff frame = Frame(root) frame.pack() #iterate thru List and create buttons dynamically i = 0 for stuff in listOfFunctions: buttonText = listOfFunctions[i][0] #first value in tuple buttonAction = listOfFunctions[i][1] #second value in tuple #make the button and assign the command to execute self.makeButton = Button(frame, text=buttonText, command=buttonAction) self.makeButton.pack() i = i + 1 #just some placeholder functions def hi(self): print ("hi") def bye(self): print ("bye") def what(self): print ("what now?") #make it go root = Tk() yadayadayada = yadayadayada(root) root.mainloop()