(En 2013) Je ne sais pas pourquoi Python est si bizarre, vous ne pouvez pas trouver cela en recherchant dans google très facilement, mais c'est assez simple.
Comment puis-je détecter "ESPACE" ou en fait n'importe quelle clé? Comment puis-je faire ceci:
print('You pressed %s' % key)
Cela devrait être inclus dans python core, donc veuillez ne pas lier les modules non liés au core python.
Vous pouvez créer une petite application Tkinter:
import Tkinter as tk
def onKeyPress(event):
text.insert('end', 'You pressed %s\n' % (event.char, ))
root = tk.Tk()
root.geometry('300x200')
text = tk.Text(root, background='black', foreground='white', font=('Comic Sans MS', 12))
text.pack()
root.bind('<KeyPress>', onKeyPress)
root.mainloop()
Utilisez Tkinter, il y a une tonne de tutoriels en ligne pour cela. en gros, vous pouvez créer des événements. Voici un lien vers un excellent site! Cela facilite la capture des clics. De plus, si vous essayez de créer un jeu, Tkinter a également une interface graphique. Bien que je ne recommanderais pas Python pour les jeux du tout, cela pourrait être une expérience amusante. Bonne chance!
La saisie de clé est un événement prédéfini. Vous pouvez capturer des événements en joignant event_sequence
(s) à event_handle
(s) en utilisant une ou plusieurs des méthodes de liaison existantes (bind
, bind_class
, tag_bind
, bind_all
). Pour pouvoir faire ça:
event_handle
méthodeevent_sequence
) qui correspond à votre cas de ne liste d'événementsLorsqu'un événement se produit, toutes ces méthodes de liaison appellent implicitement le event_handle
en passant un objet Event
, qui inclut des informations sur les détails de l'événement qui s'est produit, comme argument.
Afin de détecter l'entrée clé, on pourrait d'abord attraper tous les '<KeyPress>'
ou '<KeyRelease>'
événements, puis découvrez la clé particulière utilisée en utilisant event.keysym
attribut.
Voici un exemple utilisant bind
pour capturer les deux '<KeyPress>'
et '<KeyRelease>'
événements sur un widget particulier (root
):
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
def event_handle(event):
# Replace the window's title with event.type: input key
root.title("{}: {}".format(str(event.type), event.keysym))
if __name__ == '__main__':
root = tk.Tk()
event_sequence = '<KeyPress>'
root.bind(event_sequence, event_handle)
root.bind('<KeyRelease>', event_handle)
root.mainloop()