IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Description of Objects in VPython

Interactions clavier

Si scene.kb.keys est non nul, un ou plusieurs évènements clavier ont été stockés, en attendant d'être traités.

L'exécution de key = scene.kb.getkey() récupère la touche entrée et la supprime de la file d'attente d'entrée. S'il n'y a pas d'évènement dans la file d'attente, getkey() attend jusqu'à ce qu'une touche soit pressée.

Si len(key) == 1, l'entrée est un caractère unique imprimable tel que 'b' ou 'B' ou un retour à la ligne ('\n') ou une tabulation ('\t'). Autrement la clé est une chaîne de caractères telle que 'escape' ou 'backspace' ou 'f3'. Pour de telles entrées, les touches ctrl, alt, et shift sont associées au nom de la clé. Par exemple, si vous maintenez appuyée la touche shift et que vous pressez F3, la clé sera la chaîne de caractères 'shift+f3', que vous pouvez tester explicitement. Si vous maintenez appuyées les 3 touches modificatrices, vous obtenez 'ctrl+alt+shift+f3'; l'ordre est toujours ctrl, alt, shift.

Voici une routine de test qui vous permet de taper un texte dans un label:

 

prose = label() # initiallement un texte vide

while 1:

    if scene.kb.keys: # y-a-t-il un évènement attendant d'être traité ?

        s = scene.kb.getkey() # obtention de l'information clavier

        if len(s) == 1:

            prose.text += s # ajout du nouveau caractère

        elif (s == 'backspace' or s == 'delete') and len(prose.text) > 0:

            prose.text = prose.text[:-1] # efface une lettre

        elif s == 'shift+delete':

            prose.text = '' # efface tout le texte

 

Notez que les évènements souris fournissent aussi des renseignements sur les touches ctrl, alt et shift, qui peuvent être utilisées pour modifier les actions de la souris.

Vous pouvez aussi entrer une ligne de texte du clavier en soulignant la fenêtre de sortie (où les instructions print seront affichées) et en utilisant la fonction standard de Python raw_input(). L'instruction text = raw_input() accepte une ligne de caractères finissant par l'appui de la touche Entrée et associe à text ce qui a été tapé, en n'incluant pas la fin de ligne. L'instruction text = raw_input('Type something: ') vous invite à entrer quelque chose au clavier.

 

Copyright © 2006 Guillaume et Yoann Duriaud. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.