单击之前执行python按钮命令

时间:2017-08-26 20:44:32

标签: python tkinter

我正在编写代码,以便在单击按钮时将两个变量传递给函数。问题是它是在按下按钮之前这样做的。我做错了什么?

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)

2 个答案:

答案 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))