我是python编程的新手,我仍在努力弄清楚lambda的使用。经过多次谷歌搜索后,我对一些gui程序感到担忧,我认为我需要使用这个按钮来工作,因为我需要它
这项工作
mtrf = Button(root, text = "OFF",state=DISABLED,command = lambda:b_clicked("mtrf"))
但是当我对Scale做同样的事情时不起作用
leds = Scale(root,from_=0,to=255, orient=HORIZONTAL,state=DISABLED,variable =num,command =lambda:scale_changed('LED'))
答案 0 :(得分:36)
Scale
使用一个参数调用以command
传递的函数,因此您必须使用它(尽管立即将其丢弃)。
变化:
command=lambda: scale_changed('LED')
到
command=lambda x: scale_changed('LED')
答案 1 :(得分:5)
这可能是因为命令传递的参数可能是你不想要的。尝试从
更改lambdacommand=lambda:scale_changed('LED')
到
command=lambda x:scale_changed('LED')
答案 2 :(得分:2)
您应该咨询Tkinter documentation:
缩放小部件
command
- 每次移动滑块时调用的过程。这个过程将传递一个参数,即新的比例值。如果滑块快速移动,您可能无法获得每个可能位置的回调,但在结算时肯定会收到回调。
按钮小部件
command
- 单击按钮时要调用的函数或方法。
将lambda
更改为
command=lambda new_scale_val: scale_changed('LED')