我分叉了2048游戏的Python实现的Github存储库,我想添加更多功能。我是Python和Tkinter的新手,我找到的所有解决方案都没有帮助。
游戏由Tkinter Frame显示。已经绑定了关键事件的监听器。我想要一个单独的Object来生成几个关键事件来与游戏(而不是人类用户)进行交互。
在游戏构造函数中调用mainloop
。我试图从另一个对象上调用游戏对象上的event_generate
,但什么都没发生。在我杀死应用程序之后,我得到了异常_tkinter.TclError: can't invoke "event" command: application has been destroyed
。
我尝试使用自定义Foo
事件并生成新事件。发生同样的错误。
class GameGrid(Frame):
def __init__(self):
...
self.master.bind("<Key>", self.key_down)
self.master.bind("<<Foo>>", doFoo)
...
self.mainloop()
我的方法:
gamegrid = GameGrid()
gamegrid.master.event_generate("<Key>", keycode=27, when="tail")
gamegrid.master.event_generate("<<Foo>>", when="tail")
我尝试了不同的参数。