我在一个基本的python2.7gui应用程序中使用Tkinter
,我想通过使用IntVar
来检索Checkbutton
小部件状态(选中/未选中),但是我得到以下错误。在
TclError: can't read "PY_VAR": no such variable
我遵循了effbot about the Checkbutton Widget上的示例,并为每个按钮使用不同的IntVar
,并使用callback
函数通过调用按钮上的getvar
函数来打印变量。在
我的唯一目标是查看Checkbutton
小部件的状态。在
我正在使用Tkinter Grid Geometry管理器将小部件放在GUI上。下面是一个产生错误的MCVE示例。在
^{pr2}$代码生成四个带编号的按钮,将数字传递给lambda
函数,该函数在dict
中查找按钮并调用其相应的getvar
函数。在
如果您运行示例代码,当您选中四个按钮中的任何一个时,它将生成以下错误。它在一个名为tktest.py
的文件中
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1540, in __call__
return self.func(*args)
File "./tktest.py", line 20, in <lambda>
command=lambda bn=n: self.printvar(bn)
File "./tktest.py", line 12, in printvar
print self.buttons[button_number].getvar()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 513, in getvar
return self.tk.getvar(name)
TclError: can't read "PY_VAR": no such variable
每个按钮没有var
变量,因此我调用getvar
方法。在
检查每个单独的Checkbutton
小部件状态的任何替代方法都是可以接受的。在
编辑:首先为每个按钮创建n个可用的变量,然后保存在一个列表中。在
然后你可以把你的方法改成这个来调用这个数的变量
^{pr2}$例如,输出是:
当0被取消选中,1被选中时
相关问题 更多 >
编程相关推荐