Mega Code Archive

 
Categories / Python / GUI Tk
 

Entry Field in a model dialog

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           def show(variables):     popup.destroy()                     fetch(variables)               def ask():     global popup     popup = Toplevel()                   vars = makeform(popup, fields)     Button(popup, text='OK', command=(lambda v=vars: show(v)) ).pack()     popup.grab_set()     popup.focus_set()     popup.wait_window()             root = Tk() Button(root, text='Dialog', command=ask).pack() root.mainloop()