我定义了一个从Tkinter小部件继承的类。
现在,我想将一个回调绑定到其父窗口小部件,该回调实际上是自定义对象的一个方法。我该怎么做
目前,我有这样的想法:
from tkinter import *
from tkinter import ttk
class MyLabel(ttk.Label):
def __init__(self, *args, **kwargs):
ttk.Label.__init__(self, *args, **kwargs)
self.ntimes = 0
def test(self):
self.ntimes += 1
self.configure(
text='Now the label has changed {} times'.format(self.ntimes)
)
if __name__ == '__main__':
root = Tk()
f = ttk.Frame(root)
f.grid()
l = MyLabel(f, text='A label')
l.grid()
root.bind('<Left>', l.test)
root.mainloop()
但我得到了一个错误:
TypeError: test() takes 1 positional argument but 2 were given
注意:这只是一个简化的示例;我本可以使用ttk.Label
对象的textvariable
选项来动态更新文本,但我想把重点放在我遇到的一般问题上
需要定义
test
才能将event
作为参数:如果不想这样做,可以将
lambda
函数绑定到回调:相关问题 更多 >
编程相关推荐