2017-03-29 10 views
0

と私は単純なものでいくつかの助けをしたいと思います: <をコマンドを添付していないことを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() 

これは動作しません。確かにウィンドウが表示されますが、チェックボックスをクリックすると、「TypeError activateMotors()に1つの必須の位置引数 'active'がありません」というメッセージが表示されます。

誰でもこれを修正して、

+0

get()機能を使用する必要がありますか? –

答えて

2

コールバックは引数を付けることはできません、我々はあなたが引数を削除しようとしたことがあり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() 
+0

はい、そうです。数分後、私はACTIVEではなくNORMALを使用していたことを除いて、あなたと同様のものを見つけました。私は彼らが同義語だと思います – KansaiRobot

関連する問題