[Python] Tkinter KeyPress and KeyRelease events

Discussão em 'Python' iniciado por Stack, Setembro 15, 2024.

  1. Stack

    Stack Membro Participativo

    I understood that the Tk keypress and keyrelease events were supposed only to fire when the key was actually pressed or released?

    However with the following simple code, if I hold down the "a" key I get a continual sequence of alternating keypress/keyrelease events.

    Am I doing something wrong or is TkInter buggy? This is Python2.7 on Linux mint.

    from Tkinter import *
    def keyup(e):
    print 'up', e.char
    def keydown(e):
    print 'down', e.char

    root = Tk()
    frame = Frame(root, width=100, height=100)
    frame.bind("<KeyPress>", keydown)
    frame.bind("<KeyRelease>", keyup)
    frame.pack()
    frame.focus_set()
    root.mainloop()


    Output when pressing and holding "a":

    down a
    up a
    down a
    up a
    down a
    up a
    down a
    up a
    etc...

    Continue reading...

Compartilhe esta Página