how to write the lambda expression in my tkinter ?

守株待兔 1248283536 at qq.com
Tue Aug 23 01:10:10 EDT 2011


from Tkinter import *

 fields = 'Name', 'Job', 'Pay'

 

 def fetch(event,entries):

    for entry in entries:

        print 'Input => "%s"' % entry.get()       # get text

        print  event.widget 

 

 

 def makeform(root, fields):

    entries = []

    for field in fields:

        row = Frame(root)                           # make a new row

        lab = Label(row, width=5, text=field)       # add label, entry

        ent = Entry(row)

        row.pack(side=TOP, fill=X)                  # pack row on top

        lab.pack(side=LEFT)

        ent.pack(side=RIGHT, expand=YES, fill=X)    # grow horizontal

        entries.append(ent)

    return entries

 

 if __name__ == '__main__':

    root = Tk()

    ents = makeform(root, fields)

    root.bind('<Return>', lambda event,entries=ents: fetch(event,entries))       

    Button(root, text='Fetch', command= lambda event:fetch(event,entries)).pack(side=LEFT)    


    root.mainloop()
when you run it ,press enter ,you can get the value in the entry;when you  click the  Button(Fetch),there is a wrong output ,i can't revise it,i know it is the  26  can't run ,how to fix it ?

Button(root, text='Fetch', command= lambda event:fetch(event,entries)).pack(side=LEFT)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20110823/83cb9b2b/attachment.html>


More information about the Python-list mailing list