我想创建一个调用启用函数的复选框。其工作原理如下:
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
因此,启用功能正在运行,当我运行程序时,它输出零。但是当我勾选复选框时,根本没有生成输出。
答案 0 :(得分:1)
self.c = tk.Checkbutton(..., command=self.enable())
^^
在上面一行中,您在创建窗口小部件时立即调用enable()
方法。通过删除paranthesis将方法本身作为命令而不是其返回值。
self.c = tk.Checkbutton(..., command=self.enable)