import Tkinter as TK class Row(TK.Frame): handle = (lambda x,y: True) def setup(self, labels): for x in labels: b = TK.Button(text=x, command=(lambda: self.handle(x))) b.pack({'side':'left', 'expand':'yes'}) self.buttons.append(b) def __init__(self, parent,row): TK.Frame.__init__(self, parent) self.buttons = [] self.setup(row) class KeyPad(TK.Frame): def __init__(self, parent): TK.Frame.__init__(self,parent) self.rows = [] self.setup() def addRow(self, row): x = Row(self,row) self.rows.append(x) x.pack({'side':'top','expand':1}) def setup(self): pass x = TK.Tk() TK.Wm.title(x,'Test') kp = KeyPad(x) kp.addrow('abc') kp.addrow('def') kp.mainloop()