Tkinter:Checkbox变量始终为零

时间:2016-04-19 11:59:43

标签: python checkbox 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 个答案:

答案 0 :(得分:1)

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

在上面一行中,您在创建窗口小部件时立即调用enable()方法。通过删除paranthesis将方法本身作为命令而不是其返回值。

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