évènements clavier [Résolu]

Najalix 2 Messages postés lundi 16 février 2009Date d'inscription 10 novembre 2010 Dernière intervention - 10 nov. 2010 à 06:23 - Dernière réponse : Najalix 2 Messages postés lundi 16 février 2009Date d'inscription 10 novembre 2010 Dernière intervention
- 10 nov. 2010 à 20:52
Bonjour,

Je fais un petit programme de reconnaissance par dynamique de frappe, et pour commencer il me faut récupérer les temps de pression de chaque touche ainsi que les temps de latence entre deux touches consécutives (différence entre le temps de début de pression de la première touche et le temps de début de pression de la deuxième).
J'utilise le langage python (version 2.6) avec le module Tkinter pour simuler une fenêtre de connexion (un truc basique : deux Label suivis de deux Entry, pour le login et le mot de passe). Pour le moment je récupère juste le temps de début de pression avec un bind sur les Entry, et j'aimerais savoir comment récupérer le temps du moment où l'utilisateur relâche la touche. Si quelqu'un a une idée je suis toute ouïe.

(petite note au cas où : je travaille avec ubuntu)

Merci,

Naj
Afficher la suite 

2 réponses

Répondre au sujet
lespinx 96 Messages postés lundi 9 octobre 2006Date d'inscription 24 février 2018 Dernière intervention - 10 nov. 2010 à 17:35
+2
Utile
Bonjour,
Voici une piste:
# -*- coding: ISO-8859-15 -*-
from Tkinter import *

flag = True

#L'appui prolongé sur une touche du clavier appelle plusieurs fois l'évenement
#La variable "flag" permet d'intercepter le 1er évenement
def appui(event):
    global flag, temps

    if flag:
        temps = event.time
        flag = False
        print "appui   time=",event.time,"touche=",event.keysym

def relache(event):
    global flag, temps
    print "relache time=",event.time
    print "duree =", event.time - temps
    flag = True


Ecran = Tk()
Ecran.bind("<KeyPress>", appui)
Ecran.bind("<KeyRelease>", relache)
Ecran.mainloop()


Important:
Pour faire le test il faut que la fenêtre/TkInter ait le focus sinon les évènements clavier ne sont pas interceptés.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de lespinx
Najalix 2 Messages postés lundi 16 février 2009Date d'inscription 10 novembre 2010 Dernière intervention - 10 nov. 2010 à 20:52
0
Utile
Merci beaucoup, c'est exactement ce qu'il me fallait.

Juste une dernière question sur le sujet : le temps est donné avec quelle précision? (j'utilisais clock() mais c'était à la seconde près, j'avais des calculs de temps nuls, là j'ai des résultats satisfaisants , merci)
Commenter la réponse de Najalix

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.