2016-11-27 187 views
-1
refreshButton = Button(frameList, text ="Refresh",command = print("pressed")) 
    refreshButton.place(x=50, y=50) 

为什么此代码在每次按按钮时都不会打印出“按下”按钮,而只有在创建按钮时才按下该按钮?Python Tkinter按钮

没有错误信息。问题是打印(“按下”)不执行。

回答

0

除非使用lambda或其他功能,否则按钮命令不能给出任何参数。相反,您需要让自己的功能在按下按钮时调用。

def Refresh(*args): 
    print("pressed") 
    # do stuff 

refreshButton = Button(frameList, text ="Refresh",command = Refresh) 
refreshButton.place(x=50, y=50) 

如果你想要做的只是print("pressed")那么这是另一种解决方案。 lambda将抓住通过按钮给出的任何参数,让你调用一个函数与自己的参数:)

refreshButton = Button(frameList, text ="Refresh",command= lambda *args: print("pressed")) 
+0

我想以后从另一个调用对象的函数。打印(“按”)只是一个暂时的事情来测试按钮 – Peanutpower

+0

好吧,虽然我不明白你为什么添加自己的答案,这与其他两个答案相同...? –

+0

_“......除非你使用lambda”_并不完全正确。除了使用'lambda'外,还有其他方法可以传递参数。 –

1

使用lambda

refreshButton = Button(frameList, 
    text ="Refresh", 
    command = lambda: print("pressed") 
)