évènements clavier

Résolu
Najalix Messages postés 2 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 10 novembre 2010 - 10 nov. 2010 à 06:23
 Bambi - 16 nov. 2022 à 11:49
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

2 réponses

lespinx Messages postés 106 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 23 novembre 2022 77
10 nov. 2010 à 17:35
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.
5
Merci pour la technique, c'est cool à toi !
0

merci !

0
Rejoignez-nous