绑定键盘事件tkinter

时间:2018-03-11 17:15:00

标签: python-3.x tkinter binding

在python上还是很新的,我正在学习tkinter。 我想使用键盘事件而不是鼠标事件来进行某些功能。 但是,尽管鼠标事件有效,但键盘事件不起作用。 这是一个非常简单的例子,说明什么是无效的。使用鼠标按钮1并按键盘上的'z键也应该这样做,但键盘什么都不做。我试图阅读tkinter文档,但没有找到答案。

感谢您的帮助

from tkinter import *

class Pipi(Frame):
    def __init__(self,master=None):
        Frame.__init__(self,width=400,height=400,bg='red')
        self.pack()

        self.bind("<z>",self.do)
        self.bind("<Button-1>", self.do)


    def do(self,event):
        print('la vie est belle')



root=Tk()
Pipi(root)
root.mainloop()

1 个答案:

答案 0 :(得分:2)

这是因为Frame窗口小部件没有焦点。随着鼠标事件,它的工作看似不同。可能有几种解决方法:

  1. 在事件发生之前抓住焦点
  2. 绑定到别的东西
  3. 要实现第一个,只需添加:

        self.focus_set()
    

    __init__内的某处。

    要实现第二个,请替换:

    self.bind("<z>",self.do)
    

    使用:

    self.master.bind('<z>', self.do)