带有命令的 Tkinter 复选框

Kan*_*bot 4 python checkbox tkinter

我想要一些简单的帮助:一个 tkinter 复选框,它确实附加了一个命令<--这个简单的例子总是被提及,但从未在网络教程中显示过。

我有:

from tkinter import *

def activateMotors(active):
    scale.config(state=active)


root = Tk()
root.wm_title('Servo Control')
motorsOn= IntVar()
motorsCheck=Checkbutton(root,text="Motors ON(checked)/OFF(unchecked)", variable=motorsOn, command=activateMotors)
motorsCheck.pack()
scale = Scale(root, from_=0, to=180, 
              orient=HORIZONTAL,label="Motor #",state=DISABLED)
scale.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

这不起作用。确定窗口出现,但是当我点击复选框时,我得到“TypeError activateMotors() missing 1 required positional argument 'active' ”

任何人都可以纠正这一点,以便我们可以有一个带有命令的操作复选框示例吗?

eyl*_*esc 8

回调不能有参数,我们必须使用get()函数IntVar

from tkinter import *

def activateMotors():
    if motorsOn.get() == 1:
        scale.config(state=ACTIVE)
    elif motorsOn.get() == 0:
        scale.config(state=DISABLED)


root = Tk()
root.wm_title('Servo Control')
motorsOn= IntVar()
motorsCheck=Checkbutton(root, 
    text="Motors ON(checked)/OFF(unchecked)", 
    variable=motorsOn, 
    command=activateMotors)
motorsCheck.pack()

scale = Scale(root, from_=0, to=180, 
              orient=HORIZONTAL,label="Motor #",state=DISABLED)
scale.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)