User Input ========== .. image:: /images/gswidgets.png A user can interact with a VPython program in many ways, such as by clicking a button, choosing a menu option, clicking on an object in the scene, pressing a key, and resizing the canvas. Information about user actions is delivered to your program in the form of *events*. Events are asynchronous: the timing of these interactions is not predictable. The cleanest and most flexible way to handle user input is with event handlers: functions that are driven when particular events occur. Buttons, menus, and sliders are collectively called *widgets*. The example program `ButtonsSlidersMenus-VPython `_ illustrates the use of widgets. .. toctree:: :maxdepth: 1 Buttons