2016-04-19 2 views
-1

Я хочу создать флажок, который будет вызывать функцию разрешения. Это работает следующим образом:Tkinter: переменная checkbox всегда равна нулю

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 

Итак, функция включения работает, и когда я запускаю программу, она выдает ноль. Но когда я устанавливаю флажок, никакого вывода не генерируется вообще.

ответ

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

В строке выше, вы вызываете метод enable() как только вы создаете виджет. Пропустите метод как команду, а не его возвращаемое значение, удалив paranthesis.

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

Большое вам спасибо! Это помогло! – Kate

Смежные вопросы