我创建了一个名为get_data['name'].
的函数
此函数获取一个字符串(例如'name'),输出是一个数字数组。
我用tkinter做了几个按钮,看起来像这样:
# A Button
A_Button = Button(GUI, image=A_Im, command=get_data('a_name'))
A_Button.grid(column=0, row=1)
# C Button
C_Button = Button(GUI,image=C_Im,command=get_data('c_name'))
C_Button.grid(column=0, row=2)
# D_Button
D_Button = Button(GUI, image=D_Im, command=get_data('d_name'))
D_Button.grid(column=0, row=3)
然而,当我运行代码时,它为每个按钮执行函数get_data,而我希望它只在我点击特定按钮时才能工作。
如何让它仅在点击时才能正常工作?
谢谢。
答案 0 :(得分:0)
问题在于,您为Button
的{{1}}参数分配值的方式将首先立即调用 command
函数。这是因为您将其编写为常规函数调用。最后,您最终将实际函数调用的返回值分配给get_data
的{{1}}参数。
相反,您需要确保将{em>函数(或通常,任何可调用对象)分配给command
参数。这样可以确保它会被懒惰地评估,并且只在您实际点击按钮时调用。
一种简单的方法是将它包装在一个小的 lambda函数中,如下所示:
Button