(En 2013) No sé por qué Python es tan raro, no puedes encontrar esto buscando en Google con mucha facilidad, pero es bastante simple.
¿Cómo puedo detectar ‘ESPACIO’ o en realidad cualquier tecla? Cómo puedo hacer esto:
print('You pressed %s' % key)
Esto debería incluirse en el núcleo de Python, así que no vincule módulos que no estén relacionados con Python.
Podrías hacer una pequeña aplicación 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('', onKeyPress) root.mainloop()
Use Tkinter, hay un montón de tutoriales en línea para esto. Básicamente, puedes crear eventos. Aquí hay un enlace a un gran sitio! Esto facilita la captura de clics. Además, si está intentando hacer un juego, Tkinter también tiene una GUI. Aunque no recomendaría Python para los juegos, podría ser un experimento divertido. ¡Buena suerte!
La entrada clave es un evento predefinido. Puede capturar eventos adjuntando event_sequence
(s) a event_handle
(s) utilizando uno o varios de los métodos de enlace existentes ( bind
, bind_class
, tag_bind
, bind_all
). Para hacer eso:
event_handle
event_sequence
) que se ajuste a su caso de una lista de eventos Cuando ocurre un evento, todos esos métodos de enlace invocan implícitamente el método event_handle
al pasar un objeto de Event
, que incluye información sobre aspectos específicos del evento que ocurrió, como argumento.
Para detectar la entrada de la clave, primero se pueden capturar todos los eventos '
o '
y luego averiguar la clave específica que se usa al usar el atributo event.keysym
.
A continuación se muestra un ejemplo que utiliza el bind
para capturar '
eventos '
y '
en un widget particular ( 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 = '' root.bind(event_sequence, event_handle) root.bind('', event_handle) root.mainloop()