我想将密钥1
绑定到9
(尽可能少)以使每个密钥更改我班级中的当前类别。
我的代码:
from tkinter import *
class MyCanvas:
def __init__(self,
categories):
self.categories = categories
self._current_category = categories[0]
self._window = None
self._main()
def _main(self):
master = Tk()
self._window = Canvas(master, width=200, height=100)
self._window.pack()
self._assign_each_category_to_hotkey()
mainloop()
def _assign_each_category_to_hotkey(self):
for i in range(len(self.categories)):
self._window.bind(str(i+1), lambda e, c=self.categories[i]: self._change_category(c))
def _change_category(self, category):
print(category)
self._current_category = category
if __name__ == "__main__":
MyCanvas(categories=['tree', 'monster'])
我期待热键“1”,“2”等是可以接受的。
当我用上面的示例代码分别按键1或2时,我希望tree
或monster
在控制台中打印,但似乎没有任何事情发生。
当我运行我的代码时,似乎没有调用_change_category
方法。我怎么能改变这个?