如何向Tkinter框架调用按键事件

时间:2017-07-29 12:31:07

标签: python tkinter

我分叉了2048游戏的Python实现的Github存储库,我想添加更多功能。我是Python和Tkinter的新手,我找到的所有解决方案都没有帮助。

游戏由Tkinter Frame显示。已经绑定了关键事件的监听器。我想要一个单独的Object来生成几个关键事件来与游戏(而不是人类用户)进行交互。

在游戏构造函数中调用mainloop。我试图从另一个对象上调用游戏对象上的event_generate,但什么都没发生。在我杀死应用程序之后,我得到了异常_tkinter.TclError: can't invoke "event" command: application has been destroyed

我尝试使用自定义Foo事件并生成新事件。发生同样的错误。

Game class

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")

我尝试了不同的参数。

0 个答案:

没有答案