vispy.scene.widgets.viewbox module#

class vispy.scene.widgets.viewbox.ViewBox(camera=None, **kwargs)#

Bases: Widget

Provides a rectangular widget to which its subscene is rendered.

Three classes work together when using a ViewBox: * The SubScene class describes a “world” coordinate system and the entities that live inside it. * ViewBox is a “window” through which we view the subscene. Multiple ViewBoxes may view the same subscene. * Camera describes both the perspective from which the subscene is rendered, and the way user interaction affects that perspective.

In general it is only necessary to create the ViewBox; a SubScene and Camera will be generated automatically.

camerainstance of Camera | str | None

The camera through which to view the SubScene. If None, then a PanZoomCamera (2D interaction) is used. If str, then the string is used as the argument to make_camera().


Extra keyword arguments to pass to Widget.


Add an Node to the scene for this ViewBox.

This is a convenience method equivalent to node.parent = viewbox.scene

nodeinstance of Node

The node to add.

property camera: BaseCamera#

Get/set the Camera in use by this ViewBox

If a string is given (e.g. ‘panzoom’, ‘turntable’, ‘fly’). A corresponding camera is selected if it already exists in the scene, otherwise a new camera is created.

The camera object is made a child of the scene (if it is not already in the scene).

Multiple cameras can exist in one scene, although only one can be active at a time. A single camera can be used by multiple viewboxes at the same time.


Get the total bounds based on the visuals present in the scene

dimint | None

Dimension to return.

boundslist | tuple

If dim is None, Returns a list of 3 tuples, otherwise the bounds for the requested dimension.


Get whether the given node is inside the scene of this viewbox.

nodeinstance of Node

The node.


Resize event handler

eventinstance of Event

The event.

property scene#

The root node of the scene viewed by this ViewBox.