我正在编写代码,以便在单击按钮时将两个变量传递给函数。问题是它是在按下按钮之前这样做的。我做错了什么?
calcButton = Button(window, text="Calculate Weight",
command=window.calc(5,10))
calcButton.place(x=225, y=85)
answertextLabel = Label(window, text="Answer:")
answertextLabel.place(x=225, y=65)
answerLabel = Label(window, text=answervar)
answerLabel.place(x=275, y=65)
def calc(window, diameter, density):
math = diameter + density
print (math)
答案 0 :(得分:0)
执行window.calc(5,10)
时,函数会被执行。
您需要将其包装在另一个函数中:
command=lambda: window.calc(5,10)
答案 1 :(得分:0)
您没有将函数作为参数传递给Button
构造函数;您正在将一个特定调用的返回值传递给该函数。将调用包装在零参数函数中以推迟实际调用,直到单击该按钮。
calcButton = Button(window,
text="Calculate Weight",
command=lambda : window.calc(5,10))