So far the only event used is the on_draw event. To react to keyboard and mouse events, it's necessary to write and attach event handlers for these events as well:
import pyglet window = pyglet.window.Window() @window.event def on_key_press(symbol, modifiers): print 'A key was pressed' @window.event def on_draw(): window.clear() pyglet.app.run()
Keyboard events have two parameters: the virtual key symbol that was pressed, and a bitwise combination of any modifiers that are present (for example, the CTRL and SHIFT keys).
The key symbols are defined in pyglet.window.key:
from pyglet.window import key @window.event def on_key_press(symbol, modifiers): if symbol == key.A: print 'The "A" key was pressed.' elif symbol == key.LEFT: print 'The left arrow key was pressed.' elif symbol == key.ENTER: print 'The enter key was pressed.'
See the pyglet.window.key documentation for a complete list of key symbols.
Mouse events are handled in a similar way:
from pyglet.window import mouse @window.event def on_mouse_press(x, y, button, modifiers): if button == mouse.LEFT: print 'The left mouse button was pressed.'
The x and y parameters give the position of the mouse when the button was pressed, relative to the lower-left corner of the window.
There are more than 20 event types that you can handle on a window. The easiest way to find the event name and parameters you need is to add the following line to your program:
window.push_handlers(pyglet.window.event.WindowEventLogger())
This will cause all events received on the window to be printed to the console.
An example program using keyboard and mouse events is in examples/programming_guide/events.py