QPinchGesture Class

The QPinchGesture class describes a pinch gesture made by the user. More...

Header: #include <QPinchGesture>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QGesture

Public Types

enum ChangeFlag { ScaleFactorChanged, RotationAngleChanged, CenterPointChanged }
flags ChangeFlags

Properties

Public Functions

virtual ~QPinchGesture()
QPointF centerPoint() const
QPinchGesture::ChangeFlags changeFlags() const
QPointF lastCenterPoint() const
qreal lastRotationAngle() const
qreal lastScaleFactor() const
qreal rotationAngle() const
qreal scaleFactor() const
void setCenterPoint(const QPointF &value)
void setChangeFlags(QPinchGesture::ChangeFlags value)
void setLastCenterPoint(const QPointF &value)
void setLastRotationAngle(qreal value)
void setLastScaleFactor(qreal value)
void setRotationAngle(qreal value)
void setScaleFactor(qreal value)
void setStartCenterPoint(const QPointF &value)
void setTotalChangeFlags(QPinchGesture::ChangeFlags value)
void setTotalRotationAngle(qreal value)
void setTotalScaleFactor(qreal value)
QPointF startCenterPoint() const
QPinchGesture::ChangeFlags totalChangeFlags() const
qreal totalRotationAngle() const
qreal totalScaleFactor() const

Detailed Description

A pinch gesture is a form of touch user input in which the user typically touches two points on the input device with a thumb and finger, before moving them closer together or further apart to change the scale factor, zoom, or level of detail of the user interface.

For an overview of gesture handling in Qt and information on using gestures in your applications, see the Gestures in Widgets and Graphics View document.

Instead of repeatedly applying the same pinching gesture, the user may continue to touch the input device in one place, and apply a second touch to a new point, continuing the gesture. When this occurs, gesture events will continue to be delivered to the target object, containing an instance of QPinchGesture in the Qt::GestureUpdated state.

See also QPanGesture and QSwipeGesture.

Member Type Documentation

enum QPinchGesture::ChangeFlag
flags QPinchGesture::ChangeFlags

This enum describes the changes that can occur to the properties of the gesture object.

ConstantValueDescription
QPinchGesture::ScaleFactorChanged0x1The scale factor held by scaleFactor changed.
QPinchGesture::RotationAngleChanged0x2The rotation angle held by rotationAngle changed.
QPinchGesture::CenterPointChanged0x4The center point held by centerPoint changed.

The ChangeFlags type is a typedef for QFlags<ChangeFlag>. It stores an OR combination of ChangeFlag values.

See also changeFlags and totalChangeFlags.

Property Documentation

centerPoint : QPointF

This property holds the current center point

The center point is the midpoint between the two input points in the gesture.

Access functions:

QPointF centerPoint() const
void setCenterPoint(const QPointF &value)

See also startCenterPoint and lastCenterPoint.

changeFlags : ChangeFlags

This property holds the property of the gesture that has changed in the current step

This property indicates which of the other properties has changed since the previous gesture event included information about this gesture. You can use this information to determine which aspect of your user interface needs to be updated.

Access functions:

QPinchGesture::ChangeFlags changeFlags() const
void setChangeFlags(QPinchGesture::ChangeFlags value)

See also totalChangeFlags, scaleFactor, rotationAngle, and centerPoint.

lastCenterPoint : QPointF

This property holds the last position of the center point recorded for this gesture

Access functions:

QPointF lastCenterPoint() const
void setLastCenterPoint(const QPointF &value)

See also centerPoint and startCenterPoint.

lastRotationAngle : qreal

This property holds the last reported angle covered by the gesture motion

The last rotation angle is the angle as reported in the rotationAngle property when a previous gesture event was delivered for this gesture.

Access functions:

qreal lastRotationAngle() const
void setLastRotationAngle(qreal value)

See also rotationAngle and totalRotationAngle.

lastScaleFactor : qreal

This property holds the last scale factor recorded for this gesture

The last scale factor contains the scale factor reported in the scaleFactor property when a previous gesture event included information about this gesture.

If no previous event was delivered with information about this gesture (i.e., this gesture object contains information about the first movement in the gesture) then this property contains zero.

Access functions:

qreal lastScaleFactor() const
void setLastScaleFactor(qreal value)

See also scaleFactor and totalScaleFactor.

rotationAngle : qreal

This property holds the angle covered by the gesture motion

Access functions:

qreal rotationAngle() const
void setRotationAngle(qreal value)

See also totalRotationAngle and lastRotationAngle.

scaleFactor : qreal

This property holds the current scale factor

The scale factor measures the scale factor associated with the distance between two of the user's inputs on a touch device.

Access functions:

qreal scaleFactor() const
void setScaleFactor(qreal value)

See also totalScaleFactor and lastScaleFactor.

startCenterPoint : QPointF

This property holds the starting position of the center point

Access functions:

QPointF startCenterPoint() const
void setStartCenterPoint(const QPointF &value)

See also centerPoint and lastCenterPoint.

totalChangeFlags : ChangeFlags

This property holds the property of the gesture that has change

This property indicates which of the other properties has changed since the gesture has started. You can use this information to determine which aspect of your user interface needs to be updated.

Access functions:

QPinchGesture::ChangeFlags totalChangeFlags() const
void setTotalChangeFlags(QPinchGesture::ChangeFlags value)

See also changeFlags, scaleFactor, rotationAngle, and centerPoint.

totalRotationAngle : qreal

This property holds the total angle covered by the gesture

This total angle measures the complete angle covered by the gesture. Usually, this is equal to the value held by the rotationAngle property, except in the case where the user performs multiple rotations by removing and repositioning one of the touch points, as described above. In this case, the total angle will be the sum of the rotation angles for the multiple stages of the gesture.

Access functions:

qreal totalRotationAngle() const
void setTotalRotationAngle(qreal value)

See also rotationAngle and lastRotationAngle.

totalScaleFactor : qreal

This property holds the total scale factor

The total scale factor measures the total change in scale factor from the original value to the current scale factor.

Access functions:

qreal totalScaleFactor() const
void setTotalScaleFactor(qreal value)

See also scaleFactor and lastScaleFactor.

Member Function Documentation

[virtual noexcept] QPinchGesture::~QPinchGesture()

Destructor.