我正在制作一个基本的GUI应用程序,使用tkinter收集用户输入来填充docx模板。 代码太多,所以我只会发布我认为是问题的地方。这是我的按钮。参数不会通过
self.my_button = Button(self.master, text="Create the Contract",
command=lambda: self.create_contract(self.name_entry.get(),
self.address_entry.get(),
self.city_entry.get(),
self.postal_code_entry.get(),
self.phone_entry.get(),
self.email_entry.get(),
self.arrival_entry.get(),
self.departure_entry.get(),
self.total_nights_entry.get(),
self.before_tax_entry.get(),
self.total_nights_entry.get(),
calculations.gst(self.before_tax_entry.get()),
calculations.tvq(self.before_tax_entry.get()),
calculations.minitax(self.before_tax_entry.get())
))
self.my_button.grid(row=10, column=0)
self.master.mainloop()
def create_contract(self, name, address, city, postal_code, phone, email, arrival, departure, before_tax, total_nights, gst_tax, tvq_tax, mini_tax):
contract_template.CreateContract(name, address, city, postal_code, phone, email, arrival, departure, before_tax, total_nights, gst_tax, tvq_tax, mini_tax)
算了一笔账:
def gst(before_tax):
guest_gst = int(before_tax) * 0.05
return guest_gst
def tvq(before_tax):
guest_tvq = int(before_tax) * 0.09975
return guest_tvq
def minitax(total_nights):
guest_minitax = int(total_nights) * 2
return guest_minitax
现在,当我运行的应用程序,该GUI被显示出来,我有我的所有条目和按钮,但是当我点击该按钮:
>>> import GUIcontract
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1486, in __call__
return self.func(*args)
File "GUIcontract.py", line 76, in <lambda>
calculations.minitax(self.before_tax_entry.get())
TypeError: create_contract() takes exactly 14 arguments (15 given)
>>>
我一直在这个过去的8个小时。我希望我的笔记本电脑更坚固,所以我可以扔掉它。 问题显然是
calculations.minitax(self.before_tax_entry.get())
再看看你传递的参数。有一个奇怪的。 – user2357112 2014-08-29 02:48:23
你正在传递'self.total_nights_entry.get()'两次...... – mgilson 2014-08-29 02:49:53