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.