IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Écriture d'un programme qui mesure la vitesse de frappe


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Écriture d'un programme qui mesure la vitesse de frappe
    Bonjour!
    Je suis présentement en train de faire un projet de recherche sur la conception d'un clavier duquel les touches seront optimisées. J'ai décidé d'utiliser python pour faire une fenêtre tkinter dans laquelle une personne écrira un texte écrit enhaut de l'entrée. Chaque fois que deux caractères sont écrits, le temps d'écriture des deux caractères est affiché ("printé") dans IDLE.

    J'ai écrit ce programme, mais il ne fonctionne tout simplement pas. Quelqu'un peut m'aider? Stopwatch est une bibliothèque qui permet de chronométrer sur python. Son usage de base se trouve là : http://code.google.com/p/7oars/wiki/StopWatch

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    def saisie():
        global text, thetext
        thetext = text.get('1.0', 'end')
     
    from Tkinter import*
    import stopwatch
     
    fenetre1=Tk()
    fenetre1.title("Analyse de vitesse")
    ligne1=Label(fenetre1,text='ligne1')
    ligne1.pack()
     
    thetext=StringVar()
    if len(thetexte)>0:#quand la personne a commencé à écrire
        t.stopwatch.Timer()#partir le chrono
    lb=Label(fenetre1,text=thetext)
     
    text = Text(fenetre1, width=40, height=10)
    a=len(thetext)
     
    saisie()
    lb=Label(fenetre1,textvariable=text.get('1.0', 'end'))
     
    if a>len(thetexte):#lorsque la personne a tapé de quoi
        print thetexte[len(thetexte)-2]+thetexte[len(thetexte)-1]+":",t.elapsed,"sec"#printer les deux caractères écrits plus le temps
        a=len(thetexte)#réajuster a
        t.stop()#arrêter le chrono
        t=stopwatch.timer()#le recommencer et le mettre à 0
     
    text.pack()
    lb.pack()
     
    fenetre1.mainloop()
    Merci beaucoup d'avance

    Clement Gamache

  2. #2
    Membre confirmé

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2009
    Messages
    377
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2009
    Messages : 377
    Points : 597
    Points
    597
    Par défaut
    J'ai pas regarder en détail, mais déjà j'ai l'impression que tu as deux orthographes pour thetext et thetexte.

    C'est déjà un début de tester en changeant ça. Si c'est volontaire change de nom de variable parce que c'est pas très lisible.

    Ensuite faudrait que je teste car j'ai jamais fait d'UI en python, mais j'ai l'impression que :

    Correspond à une boucle infinie sur ta fenêtre donc il va a chaque fois exécuter cette partie du code non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    thetext=StringVar()
    if len(thetexte)>0:#quand la personne a commencé à écrire
        t.stopwatch.Timer()#partir le chrono
    lb=Label(fenetre1,text=thetext)

    Et ici tu es sur de la condition ? J'ai l'impression que c'est plutôt < que >. Car a stock la valeur précédente du texte et dans thetext la valeur actuelle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if a>len(thetexte):#lorsque la personne a tapé de quoi
    Essaie déjà de voir ces points la, je regarderai plus en détail plus tard si tu bloques toujours.

    p.s. tu travailles sur python 3.0 ?

  3. #3
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Exemple sur le code donné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    try:
        from Tkinter import *
    except:
        from tkinter import *
    import time
     
    def saisie(event):
        global tps1
        tps2 = time.time()
        ligne1['text'] = '{} sec'.format(tps2-tps1)
        tps1 = tps2
        thetexte.set(event.char)
     
    fenetre1 = Tk()
    fenetre1.title("Analyse de vitesse")
    ligne1 = Label(fenetre1, text='Temps')
    ligne1.pack()
    thetexte = StringVar()
    text = Text(fenetre1, width=40, height=10)
    text.bind("<Key>", saisie)
    text.pack()
    lb = Label(fenetre1, textvariable=thetexte)
    lb.pack()
    tps1 = time.time()
    fenetre1.mainloop()
    @+
    Merci d'utiliser le forum pour les questions techniques.

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Et sans le StringVar (inutile ici)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    try:
        from Tkinter import *
    except:
        from tkinter import *
    import time
     
    def saisie(event):
        global tps1
        tps2 = time.time()
        ligne1['text'] = '{} sec'.format(tps2-tps1)
        tps1 = tps2
        lb['text'] = event.char
     
    fenetre1 = Tk()
    fenetre1.title("Analyse de vitesse")
    ligne1 = Label(fenetre1, text='Temps')
    ligne1.pack()
    text = Text(fenetre1, width=40, height=10)
    text.bind("<Key>", saisie)
    text.pack()
    lb = Label(fenetre1)
    lb.pack()
    tps1 = time.time()
    fenetre1.mainloop()
    Merci d'utiliser le forum pour les questions techniques.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. logiciel qui mesure la vitesse
    Par flo456 dans le forum Administration
    Réponses: 5
    Dernier message: 22/05/2007, 14h22
  2. programme qui consomme beaucoup de memoire
    Par gaut dans le forum Windows
    Réponses: 10
    Dernier message: 01/02/2005, 20h33
  3. Programme qui analyse un fichier log
    Par abdou.sahraoui dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 20/08/2004, 14h27
  4. [LG]Programme qui n'affiche rien
    Par ousunas dans le forum Langage
    Réponses: 4
    Dernier message: 17/02/2004, 19h38
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo