TkInter, keypress, keyrelease événements
J'ai compris que les Savoirs traditionnels keypress et keyrelease événements étaient censés seulement à feu lorsque la clé a été effectivement enfoncé ou relâché?
Cependant, avec le code simple suivant, si je maintenez la touche "a" - je obtenir une séquence continue de l'alternance de la pression de touche/keyrelease événements.
Je fais quelque chose de mal ou est TkInter buggy? C'est Python2.7 sur 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()
De sortie en appuyant sur et en maintenant "une":
down a
up a
down a
up a
down a
up a
down a
up a
etc...
OriginalL'auteur lost | 2014-11-30
Vous devez vous connecter pour publier un commentaire.
Ok un peu plus de recherche trouvé ce post utile qui montre cela se produit parce que de X autorepeat comportement. Vous pouvez le désactiver en utilisant
et puis de le réinitialiser à l'aide de "on" à la fin de votre script.
Le problème c'est que c'est comportement global - et pas seulement mon script - qui n'est pas génial, donc je suis en espérant que quelqu'un puisse trouver une meilleure façon.
OriginalL'auteur lost
Autorepeat comportement est dépendante du système. Dans Win7,
C'est pour moins d'une seconde.
OriginalL'auteur Terry Jan Reedy
comment sur;
maintenant il ne se répétera pas.
OriginalL'auteur