- Qt 6.7
- Qt Graphs
- C++ Classes
- QtGraphs (Technical Preview)
- Q3DInputHandler
- Qt Graphs | Commercial or GPLv3

# Q3DInputHandler Class

Basic wheel mouse based input handler. More...

Header: | #include <Q3DInputHandler>
CMake: | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: | QT += graphs
Instantiated By: | InputHandler3D
Inherits: | QAbstract3DInputHandler
Inherited By: | QTouch3DInputHandler
Status: | Technical Preview

- List of all members, including inherited members
- Q3DInputHandler is part of Qt Graphs C++ Classes for 3D.

## Properties

- rotationEnabled : bool
- selectionEnabled : bool
- zoomAtTargetEnabled : bool
- zoomEnabled : bool

## Public Functions

| Q3DInputHandler(QObject *parent = nullptr)
virtual | ~Q3DInputHandler()
bool | isRotationEnabled() const
bool | isSelectionEnabled() const
bool | isZoomAtTargetEnabled() const
bool | isZoomEnabled() const
void | setRotationEnabled(bool enable)
void | setSelectionEnabled(bool enable)
void | setZoomAtTargetEnabled(bool enable)
void | setZoomEnabled(bool enable)

## Reimplemented Public Functions

virtual void | mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos) override
virtual void | mousePressEvent(QMouseEvent *event, const QPoint &mousePos) override
virtual void | mouseReleaseEvent(QMouseEvent *event, const QPoint &mousePos) override
virtual void | wheelEvent(QWheelEvent *event) override

## Signals

void | rotationEnabledChanged(bool enable)
void | selectionEnabledChanged(bool enable)
void | zoomAtTargetEnabledChanged(bool enable)
void | zoomEnabledChanged(bool enable)

## Detailed Description

Q3DInputHandler is the basic input handler for wheel mouse type of input devices.

Default input handler has the following functionalty:

Mouse action | Action
--- | ---
Drag with right button pressed | Rotate graph within limits.
Left click | Select item under cursor or remove selection if none. May open the secondary view depending on the selection mode.
Mouse wheel | Zoom in/out within the allowable zoom range.
Left click on the primary view when the secondary view is visible | Closes the secondary view. Note: Secondary view is available only for Q3DBars and Q3DSurface graphs.

Rotation, zoom, and selection can each be individually disabled using corresponding properties of this class.

## Property Documentation

### rotationEnabled : bool

This property holds whether this input handler allows graph rotation.

Defaults to `true`.

Access functions:

bool | isRotationEnabled() const
void | setRotationEnabled(bool enable)

Notifier signal:

void | rotationEnabledChanged(bool enable)

### selectionEnabled : bool

This property holds whether this input handler allows selection from the graph.

Defaults to `true`.

Access functions:

bool | isSelectionEnabled() const
void | setSelectionEnabled(bool enable)

Notifier signal:

void | selectionEnabledChanged(bool enable)

### zoomAtTargetEnabled : bool

This property holds whether zooming should change the camera target so that the zoomed point of the graph stays at the same location after the zoom.

Defaults to `true`.

Access functions:

bool | isZoomAtTargetEnabled() const
void | setZoomAtTargetEnabled(bool enable)

Notifier signal:

void | zoomAtTargetEnabledChanged(bool enable)

### zoomEnabled : bool

This property holds whether this input handler allows graph zooming.

Defaults to `true`.

Access functions:

bool | isZoomEnabled() const
void | setZoomEnabled(bool enable)

Notifier signal:

void | zoomEnabledChanged(bool enable)

## Member Function Documentation

### `[explicit]` Q3DInputHandler::Q3DInputHandler(QObject *parent = nullptr)

Constructs the basic mouse input handler. An optional parent parameter can be given and is then passed to QObject constructor.

### `[virtual noexcept]` Q3DInputHandler::~Q3DInputHandler()

Destroys the input handler.

### `[override virtual]` void Q3DInputHandler::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos)

Reimplements: QAbstract3DInputHandler::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos).

Override this to change handling of mouse move events. Mouse move event is given in the event and the mouse position in mousePos.

### `[override virtual]` void Q3DInputHandler::mousePressEvent(QMouseEvent *event, const QPoint &mousePos)

Reimplements: QAbstract3DInputHandler::mousePressEvent(QMouseEvent *event, const QPoint &mousePos).

Override this to change handling of mouse press events. Mouse press event is given in the event and the mouse position in mousePos.

### `[override virtual]` void Q3DInputHandler::mouseReleaseEvent(QMouseEvent *event, const QPoint &mousePos)

Reimplements: QAbstract3DInputHandler::mouseReleaseEvent(QMouseEvent *event, const QPoint &mousePos).

Override this to change handling of mouse release events. Mouse release event is given in the event and the mouse position in mousePos.

### `[override virtual]` void Q3DInputHandler::wheelEvent(QWheelEvent *event)

Reimplements: QAbstract3DInputHandler::wheelEvent(QWheelEvent *event).

Override this to change handling of wheel events. The wheel event is given in the event.