Я пытаюсь сделать простой графический интерфейс как часть моего обучения Python/Tkinter - попытка получить кнопку сохранения для работы, но я получаю ошибку: TypeError: save() missing 1 required позиционный аргумент: «записи»GUI в Python 3 с помощью Tkinter
Исследование в Интернете не помогает мне, пробовал весь день!
Спасибо за любую помощь заранее, мой полный код ниже:
from tkinter import *
from math import *
fields = 'Owners Name', 'Rate', 'length', 'Length_of_stay'
def save(entries):
text_file = open ("text.txt","a")
text_file.write (entries)
entries = []
for entry in entries:
field = entry[0]
text = entry[1].get() + "\n"
with open("text.txt", "a") as f:
f.write(entries)
def fetch(entries):
for entry in entries:
field = entry[0]
text = entry[1].get()
print('%s: "%s"' % (field, text))
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
def onSave(entries): #save command
filename = asksaveasfilename(defaultextension='.txt')
if filename:
with open(filename, 'w') as f:
f.write(entries.gettext())
def calc(entries):
x = (int(entries['Rate'].get()))
y = (int(entries['length'].get()))
z = x + y
print(z)
if __name__ == '__main__':
root = Tk()
w = Label(text="Cardiff Yachting Marina Booking System")
w.pack()
w = Label(text="Hourly: £0.50\nDaily: £10.00\nWeekly:£50.00\nMonthly: £180.00\nYearly: £1320.50\n", justify=LEFT)
w.pack()
w = Label(text="Complete your booking details below:")
w.pack()
ents = makeform(root, fields)
root.bind('<Return>', (lambda event, e=ents: fetch(e)))
b1 = Button(root, text='Show',
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)
b3 = Button(root, text='Calculate',
command=(lambda e=ents: calc(e)))
b3.pack(side=LEFT, padx=5, pady=5)
b = Button(root, text="save", width=9, command=save)
b.pack(side=LEFT, padx=5, pady=5)
root.mainloop()
Исправьте углубление. – Kevin