我在尝试做一个计算器,尝试把算出的值存到一个字典中,以便之后使用。
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.8/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
TypeError: value_list() takes 1 positional argument but 2 were given
[Finished in 12.3s]
from tkinter import *
from tkinter.messagebox import *
class calc(object):
def __init__(self, root):
super(calc, self).__init__()
self.root = root
---snip---
self.res_show()
valueList = {} #空字典
def delta_t_calc(self,**valueList):
self.valueList = valueList
try:
self.t_in = float(self.inEntry.get())
self.t_out = float(self.outEntry.get())
except:
return showwarning('ValueError:','Please enter numbers')
self.delta_t = self.t_in - self.t_out
self.value1 = {'delta_t':'self.delta_t'}
return valueList.update(self.value1)
#出错的地方:(
def value_list(self,**valueList):
print (valueList['delta_t'])
def res_show(self):
self.res = Button(self.root,text='calculate \n now',
relief="groove",bg="#393939",fg="white")
self.res.grid(row=2,column=0,sticky=E+W)
self.res.bind("" ,self.value_list)
root = Tk()
cal_settings = Settings()
root.title(cal_settings.title)
root.geometry(cal_settings.geometry)
root.configure(bg="#484848")
runner = calc(root)
root.mainloop()
我以为是字典的原因,于是给加了**valueList. 但好像不是这样的。
run.py没有贴出完整的
run.py 完整的
from tkinter import *
from tkinter import ttk
from settings import Settings
from value import calc
root = Tk()
cal_settings = Settings()
root.title(cal_settings.title)
root.geometry(cal_settings.geometry)
root.configure(bg="#484848")
runner = calc(root)
root.mainloop()