QNativeGestureEvent Class▲
-
Header: QNativeGestureEvent
-
Since: Qt 5.2
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
-
qmake: QT += gui
-
Inherits: QSinglePointEvent
-
Group: QNativeGestureEvent is part of events
Detailed Description▲
Native gesture events are generated by the operating system, typically by interpreting trackpad touch events. Gesture events are high-level events such as zoom, rotate or pan. Several types hold incremental values: that is, value() and delta() provide the difference from the previous event to the current event.
Event Type |
Description |
Touch sequence |
---|---|---|
Magnification delta in percent. |
macOS and Wayland: Two-finger pinch. |
|
Boolean magnification state. |
macOS: Two-finger douple tap (trackpad) / One-finger douple tap (magic mouse). |
|
Rotation delta in degrees. |
macOS and Wayland: Two-finger rotate. |
|
Swipe angle in degrees. |
macOS: Configurable in trackpad settings. |
|
Displacement delta in pixels. |
Wayland: Three or more fingers moving as a group, in any direction. |
In addition, BeginNativeGesture and EndNativeGesture are sent before and after gesture event streams:
BeginNativeGesture ZoomNativeGesture ZoomNativeGesture ZoomNativeGesture EndNativeGesture
The event stream may include interleaved gestures of different types: for example the two-finger pinch gesture generates a stream of Zoom and Rotate events, and PanNativeGesture may sometimes be interleaved with those, depending on the platform.
Other types are standalone events: SmartZoomNativeGesture and SwipeNativeGesture occur only once each time the gesture is detected.
On a touchpad, moving two fingers as a group (the two-finger flick gesture) is usually reserved for scrolling; in that case, Qt generates QWheelEvents. This is the reason that three or more fingers are needed to generate a PanNativeGesture.
See Also▲
See also Qt::NativeGestureType, QGestureEvent, QWheelEvent
Member Function Documentation▲
[since 6.2] QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QPointingDevice *device, int fingerCount, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, qreal value, const QPointF &delta, quint64 sequenceId = UINT64_MAX)▲
Constructs a native gesture event of type type originating from device describing a gesture at scenePos in which fingerCount fingers are involved.
The points localPos, scenePos and globalPos specify the gesture position relative to the receiving widget or item, window, and screen or desktop, respectively.
value has a gesture-dependent interpretation: for RotateNativeGesture or SwipeNativeGesture, it's an angle in degrees. For ZoomNativeGesture, value is an incremental scaling factor, usually much less than 1, indicating that the target item should have its scale adjusted like this: item.scale = item.scale * (1 + event.value)
For PanNativeGesture, delta gives the distance in pixels that the viewport, widget or item should be moved or panned.
The delta is stored in single precision (QVector2D), so delta() may return slightly different values in some cases. This is subject to change in future versions of Qt.
This function was introduced in Qt 6.2.
[since 6.2] QPointF QNativeGestureEvent::delta() const▲
Returns the distance moved since the previous event, in pixels. A Pan gesture provides the distance in pixels by which the target widget, item or viewport contents should be moved.
This function was introduced in Qt 6.2.
See Also▲
See also QPanGesture::delta()
[since 6.2] int QNativeGestureEvent::fingerCount() const▲
Returns the number of fingers participating in the gesture, if known. When gestureType() is Qt::BeginNativeGesture or Qt::EndNativeGesture, often this information is unknown, and fingerCount() returns 0.
This function was introduced in Qt 6.2.
[since 5.2] Qt::NativeGestureType QNativeGestureEvent::gestureType() const▲
Returns the gesture type.
This function was introduced in Qt 5.2.
[since 5.2] qreal QNativeGestureEvent::value() const▲
Returns the gesture value. The value should be interpreted based on the gesture type. For example, a Zoom gesture provides a scale factor delta while a Rotate gesture provides a rotation delta.
This function was introduced in Qt 5.2.
See Also▲
See also QNativeGestureEvent, gestureType()
Obsolete Members for QNativeGestureEvent▲
The following members of class QNativeGestureEvent are deprecated. We strongly advise against using them in new code.
Obsolete Member Function Documentation▲
[since 5.10] QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QPointingDevice *device, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, qreal realValue, quint64 sequenceId, quint64 intValue)▲
This function is deprecated since 6.2. We strongly advise against using it in new code.
Use the other constructor, because intValue is no longer stored separately.
Constructs a native gesture event of type type originating from device.
The points localPos, scenePos and globalPos specify the gesture position relative to the receiving widget or item, window, and screen or desktop, respectively.
realValue is the macOS event parameter, sequenceId and intValue are the Windows event parameters.
It's not possible to store realValue and intValue simultaneously: one or the other must be zero. If realValue == 0 and intValue != 0, it is stored in the same variable, such that value() returns the value given as intValue.
This function was introduced in Qt 5.10.
[since 5.2] const QPoint QNativeGestureEvent::globalPos() const▲
This function is deprecated since 6.0. We strongly advise against using it in new code.
Use globalPosition().toPoint() instead.
Returns the position of the gesture as a QPointF in screen coordinates
This function was introduced in Qt 5.2.
[since 5.2] QPointF QNativeGestureEvent::localPos() const▲
This function is deprecated since 6.0. We strongly advise against using it in new code.
Use position() instead.
Returns the position of the gesture as a QPointF, relative to the widget or item that received the event.
This function was introduced in Qt 5.2.
[since 5.2] const QPoint QNativeGestureEvent::pos() const▲
This function is deprecated since 6.0. We strongly advise against using it in new code.
Use position().toPoint() instead.
Returns the position of the mouse cursor, relative to the widget or item that received the event.
This function was introduced in Qt 5.2.
[since 5.2] QPointF QNativeGestureEvent::screenPos() const▲
This function is deprecated since 6.0. We strongly advise against using it in new code.
Use globalPosition() instead.
Returns the position of the gesture as a QPointF in screen coordinates.
This function was introduced in Qt 5.2.
[since 5.2] QPointF QNativeGestureEvent::windowPos() const▲
This function is deprecated since 6.0. We strongly advise against using it in new code.
Use scenePosition() instead.
Returns the position of the gesture as a QPointF, relative to the window that received the event.
This function was introduced in Qt 5.2.