2010-03-22 8 views

Respuesta

1

En el grupo de Google para pyglet-users es sugerir podría sobrecargar el window.Window.on_key_press(), aunque hay ningún ejemplo de código de la misma.

17

Sé que la pregunta es antigua, pero por las dudas. Debe devolver pyglet.event.EVENT_HANDLED para evitar el comportamiento predeterminado. No lo probé, pero en teoría esto debería funcionar:

@window.event 
def on_key_press(symbol, modifiers): 
    if symbol == pyglet.window.key.ESCAPE: 
     return pyglet.event.EVENT_HANDLED 
+3

Lo probé, funciona. – Shavais

+0

Esta debería ser la respuesta aceptada, porque realmente responde la pregunta. –

4

Lo mismo para mí. La pregunta es antigua, pero descubrí que debes usar los mecanismos de manejo de ventanas, haciendo que el evento actual no se propague más.

puede evitar que el caso restante manipuladores en la pila de recibir caso devolviendo un valor verdadero. El controlador de eventos siguiente, cuando empujado sobre la ventana, impedirá la tecla de escape de salir del programa :

def on_key_press(symbol, modifiers): 
    if symbol == key.ESCAPE: 
     return True 

window.push_handlers(on_key_press) 

aquí es que link

+0

+1 para enlace a documentos – henrebotha

1

Es simple en realidad, Ventana subclase y overide el on_key_press, así:

class MyWindow(pyglet.window.Window): 
    def on_key_press(self, symbol, modifiers): 
     if symbol == key.ESCAPE: 
      return pyglet.event.EVENT_HANDLED 
Cuestiones relacionadas