2016-04-19 69 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 

所以,启用功能正在工作,当我运行该程序,它输出零。但是当我检查复选框时,根本没有输出。

回答

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

在上面的行中,您在创建小部件后立即调用enable()方法。传递方法本身作为命令而不是它的返回值,通过删除paranthesis。

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

非常感谢!这有帮助! – Kate