尝试使用键盘快捷键重置游戏。在前面的初始化类中,我创建了一个菜单来启动一个新游戏,并使用自复位重置分数/网格等。 我现在尝试用同一个命令实现快捷方式——reset是类中的一个方法。在
self._master.bind_all('<Control-n>', self.reset)
这是错误:
^{pr2}$我的困惑是自复位在初始阶段工作得很好,但是在快捷方式下就不行了?在
我看不出快捷方式是如何给方法提供任何位置参数的。在
如果我改成自复位()我得到一个关于当前类缺少\u game属性的错误。在
重置方法如下:
def reset(self):
self._game.get_default_score()
self._game.reset()
self._grid_view.draw(self._game.grid, self._game.find_connections())
这很简单-无论绑定快捷方式的机制是什么,它都会向您的
reset
方法传递一个额外的参数。在既然您根本不关心它是什么,只需声明您的方法以接受它 一个额外的可选参数,你应该很好:
所以,搜索“bind\u all”时,我们会发现您的代码实际上使用了tkinter,而tkinter传递给您的方法的是“event”—一个包含有关实际按下的键的信息的对象,以及这样的-http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm
相关问题 更多 >
编程相关推荐