from Tkinter import *
from tkMessageBox import askokcancel
class Quitter(Frame):
def __init__(self, parent=None):
Frame.__init__(self, parent)
self.pack()
widget = Button(self, text='Quit', command=self.quit)
widget.pack(expand=YES, fill=BOTH, side=LEFT)
def quit(self):
ans = askokcancel('Verify exit', "Really quit?")
if ans: Frame.quit(self)
fields = 'First Name', 'Last Name', 'Job'
def fetch(variables):
for variable in variables:
print 'Input => "%s"' % variable.get()
def makeform(root, fields):
form = Frame(root)
left = Frame(form)
rite = Frame(form)
form.pack(fill=X)
left.pack(side=LEFT)
rite.pack(side=RIGHT, expand=YES, fill=X)
variables = []
for field in fields:
lab = Label(left, width=5, text=field)
ent = Entry(rite)
lab.pack(side=TOP)
ent.pack(side=TOP, fill=X)
var = StringVar()
ent.config(textvariable=var)
var.set('enter here')
variables.append(var)
return variables
if __name__ == '__main__':
root = Tk()
vars = makeform(root, fields)
Button(root, text='Fetch',
command=(lambda v=vars: fetch(v))).pack(side=LEFT)
Quitter(root).pack(side=RIGHT)
root.bind('<Return>', (lambda event, v=vars: fetch(v)))
root.mainloop()
|