我已经将键盘作为应用程序的一部分
AmountEntered = ""
def addvalue(AmountEntered, value):
AmountEntered = AmountEntered + value
def Clear(AmountEntered):
AmountEntered = ""
Number = tk.Button(root, text = "7", command = lambda AmountEntered: addvalue(AmountEntered, "7"))
Number.grid(row=0, column=0, sticky='nesw')
(所有数字0-9均重复数字)
每当我单击任何按钮时,都会收到错误消息: TypeError :()缺少1个必需的位置参数:'AmountEntered'
这实际上指的是什么,我该如何解决?
答案 0 :(得分:1)
错误源于Tk试图用零参数调用命令(lambda)函数(因为按钮的命令没有参数)。
您已经声明它确实需要一个参数,因此会出现错误。
Number = tk.Button(root, text = "7", command = lambda: addvalue(AmountEntered, "7"))
应该可以工作(但可能不会真正做到您想要的,但这是另一个错误)。
答案 1 :(得分:1)
问题在于tk.Button
不希望其命令接受参数,并且不传递参数。是您的回调函数正在等待一个参数而没有收到一个参数。
您期望回调收到的任何东西都必须来自其他地方。在这种情况下,似乎addvalue
可以简单地将AmountEntered
视为全局变量(尽管可能会有更好的替代词):
amount_entered = ""
def add_value(value):
global amount_entered
amount_entered += value
def clear():
global amount_entered
amount_entered = ""
number = tk.Button(root, text="7", command=lambda: addvalue("7"))
number.grid(row=0, column=0, sticky='nesw')