2016-04-19 4 views
-1

有効化機能を呼び出すチェックボックスを作成します。これは次のように機能します。Tkinter:チェックボックス変数は常にゼロです

self.lol = tk.IntVar(False) 
self.c = tk.Checkbutton(self, text="Advanced settings", variable=self.lol, command=self.enable()) 
self.c.grid(column=3,row=5,sticky="EW") 

def enable(self): 
    print (self.lol.get()) 
    if self.lol.get()==1: 
     self.advanced() 
    if self.lol.get()==0: 
     try: 
      self.gpuvar.grid_forget() 
      print ("lalka") 
     except: 
      pass 

したがって、enable関数が動作していて、プログラムを実行するとゼロが出力されます。しかし、チェックボックスをチェックすると、出力はまったく生成されません。

答えて

1
self.c = tk.Checkbutton(..., command=self.enable()) 
               ^^ 

上記の行では、ウィジェットを作成するとすぐにenable()メソッドを呼び出しています。 paranthesisを削除して、メソッド自体を戻り値ではなくコマンドとして渡します。

self.c = tk.Checkbutton(..., command=self.enable) 
+0

ありがとうございました!これは助けになった! – Kate

関連する問題