【发布时间】:2020-04-22 04:26:39
【问题描述】:
我正在尝试编写一个函数来根据检查按钮的值禁用 tkinter 程序中的小部件。我希望这个函数是通用的:也就是说,我可以将小部件和关联的检查变量传递给它,它将禁用小部件(如果以正确的方式检查变量)。
这是我的代码的抽象版本
import tkinter
class App:
def __init__(self,root):
widg = tkinter.Scale(root,from_=0,to=100)
checkvar = tkinter.IntVar()
checker = tkinter.Checkbutton(root,variable=checkvar,command=self.check(var,checkvar))
widg.grid()
checker.grid()
widg.configure(state=tkinter.DISABLED)
widg.configure(state=tkinter.NORMAL)
def check(self,widget,var):
if var.get()==1:
widget.configure(state=tkinter.DISABLED)
elif var.get()==0:
widget.configure(state=tkinter.NORMAL)
m = tkinter.Tk()
f=App(m)
它的作用是点击检查按钮触发回调 - 检查 - 使用小部件的参数和检查变量。然后它将评估小部件是否应该打开或关闭并相应地更改其状态。没有错误,但状态没有改变。我在这里想念什么?
谢谢
【问题讨论】:
标签: python-3.x tkinter