Newbie to python. Learning how the Lambda function works with printing. I have managed to output the print to a .txt document using sys.stdout, but when I do I am only getting the last variable in the fields. How are all fields captured? What am I missing?
from tkinter import *
fields = 'First Name', 'Last Name', 'Organization', 'Tax Exeption',
def fetch(entries):
for entry in entries:
field = entry[0]
text = entry[1].get()
sys.stdout = open('file.txt', 'w')
print('%s: "%s"' % (field, text))
sys.stdout.close()
def makeform(root, fields):
entries = []
for field in fields:
row = Frame(root)
lab = Label(row, width=15, text=field, anchor='w')
ent = Entry(row)
row.pack(side=TOP, fill=X, padx=5, pady=5)
lab.pack(side=LEFT)
ent.pack(side=RIGHT, expand=YES, fill=X)
entries.append((field, ent))
return entries
if __name__ == '__main__':
root = Tk()
root.title('Order Info')
ents = makeform(root, fields)
root.bind('<Return>', (lambda event, e=ents: fetch(e)))
b1 = Button(root, text='Print',
command=(lambda e=ents: fetch(e)))
b1.pack(side=LEFT, padx=5, pady=5)
b2 = Button(root, text='Quit', command=root.quit)
b2.pack(side=LEFT, padx=5, pady=5)
root.mainloop()