这是我在Effbot网站上找到的一个小代码示例,它与我想要在我的某个程序中做的很接近:
from Tkinter import *
fen =Tk()
class test_Tk_class:
def __init__(self):
self.var = IntVar()
c = Checkbutton(
fen, text="Enable Tab",
variable=self.var,
command=self.cb)
c.pack()
def cb(self,event):
print "variable is", self.var.get()
a = test_Tk_class()
fen.mainloop()
但是这段代码不起作用。回调函数cb
不起作用,因为它接受2个参数但没有给出。你如何指定event
参数?
答案 0 :(得分:6)
在这种情况下,此代码根本不需要event
。我通过完全删除它来实现它:
def cb(self):
print "variable is", self.var.get()
如果您将功能绑定到按键或鼠标单击,则唯一一次构建代码的方法就是这样。但是,为了检查/取消选中一个检查按钮,不需要它。
我不知道在Effbot上编写此代码的人是做什么的,但我不认为他做得对。也许他写了一个错字或者想到别的东西。
答案 1 :(得分:0)
您可以使用函数的无事件版本。此方法允许您将其用于Checkbutton
命令或事件回调。您可以在下面找到修改后的版本:
def cb(self,event=None):
print "variable is", self.var.get()