本页内容

QPinchGesture Class

QPinchGesture 类描述了用户执行的捏合手势。更多内容...

头文件: #include <QPinchGesture>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
继承自: QGesture

公共类型

enum ChangeFlag { ScaleFactorChanged, RotationAngleChanged, CenterPointChanged }
flags ChangeFlags

属性

公共函数

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

详细说明

捏合手势是一种触摸用户输入方式,用户通常用拇指和食指在输入设备上触摸两个点,然后将它们向内或向外移动以改变用户界面的缩放比例、缩放级别或细节级别。

有关 Qt 中手势处理的概述以及在应用程序中使用手势的信息,请参阅《Qt Widgets 和图形视图中的手势》文档。

双指捏合手势演示

用户无需反复执行相同的手势,而可以在输入设备上的一个位置保持触摸,同时在另一个新位置进行第二次触摸,从而继续该手势。此时,手势事件将继续传递给目标对象,其中包含处于Qt::GestureUpdated 状态的QPinchGesture实例。

另请参阅 QPanGesture 和QSwipeGesture 。

成员类型文档

enum QPinchGesture::ChangeFlag
flags QPinchGesture::ChangeFlags

此枚举描述了手势对象属性可能发生的变更。

常量值描述
QPinchGesture::ScaleFactorChanged0x1scaleFactor 持有的缩放因子发生了变化。
QPinchGesture::RotationAngleChanged0x2rotationAngle 持有的旋转角度发生了变化。
QPinchGesture::CenterPointChanged0x4centerPoint 持有的中心点发生了变化。

ChangeFlags 类型是QFlags<ChangeFlag> 的 typedef。它存储 ChangeFlag 值的按“或”运算组合。

另请参阅 changeFlags 和totalChangeFlags 。

属性文档

centerPoint : QPointF

该属性存储当前的中心点

中心点是手势中两个输入点之间的中点。

访问函数:

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

另请参阅 startCenterPoint 和lastCenterPoint 。

changeFlags : ChangeFlags

该属性保存了当前步骤中发生变化的手势的属性

该属性指示自上次包含此手势信息的手势事件以来,其他属性中哪些发生了变化。您可以利用此信息来确定用户界面的哪个方面需要更新。

访问函数:

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

另请参阅 totalChangeFlags 、scaleFactor 、rotationAngle 以及centerPoint 。

lastCenterPoint : QPointF

该属性保存了此手势中心点的最后记录位置

访问函数:

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

另请参阅 centerPoint 和startCenterPoint 。

lastRotationAngle : qreal

该属性存储手势动作所覆盖的最后一个报告角度

最后一个旋转角度是指在为该手势发送上一次手势事件时,rotationAngle 属性中报告的角度。

访问函数:

qreal lastRotationAngle() const
void setLastRotationAngle(qreal value)

另请参阅 rotationAngle 和totalRotationAngle 。

lastScaleFactor : qreal

该属性保存了此手势记录的最后一个缩放因子

“最后一个缩放因子”包含在先前手势事件包含有关此手势的信息时,scaleFactor 属性中报告的缩放因子。

如果此前未曾发送过包含该手势信息的事件(即该手势对象包含该手势中首次移动的信息),则该属性值为零。

访问函数:

qreal lastScaleFactor() const
void setLastScaleFactor(qreal value)

另请参阅 scaleFactor 和totalScaleFactor 。

rotationAngle : qreal

该属性存储手势动作所涵盖的角度

访问函数:

qreal rotationAngle() const
void setRotationAngle(qreal value)

另请参阅 totalRotationAngle 和lastRotationAngle 。

scaleFactor : qreal

该属性存储当前的缩放因子

缩放因子用于衡量触摸设备上用户两个输入点之间距离对应的缩放因子。

访问函数:

qreal scaleFactor() const
void setScaleFactor(qreal value)

另请参阅 totalScaleFactor 和lastScaleFactor 。

startCenterPoint : QPointF

该属性存储中心点的起始位置

访问函数:

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

另请参阅 centerPoint 和lastCenterPoint 。

totalChangeFlags : ChangeFlags

该属性保存了发生变化的手势的属性

该属性指示自手势开始以来,其他属性中哪一项发生了变化。您可以利用此信息来确定用户界面的哪个方面需要更新。

访问函数:

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

另请参阅 changeFlags 、scaleFactor 、rotationAngle 以及centerPoint 。

totalRotationAngle : qreal

该属性存储手势所覆盖的总角度

该总角度衡量手势所覆盖的完整角度。通常,该值与rotationAngle 属性所存储的值相等,但如上所述,当用户通过移除并重新定位其中一个触点来执行多次旋转时除外。在这种情况下,总角度将等于该手势多个阶段的旋转角度之和。

访问函数:

qreal totalRotationAngle() const
void setTotalRotationAngle(qreal value)

另请参阅 rotationAngle 和lastRotationAngle 。

totalScaleFactor : qreal

该属性存储总缩放因子

总缩放因子衡量了缩放因子从原始值到当前值的总变化量。

访问函数:

qreal totalScaleFactor() const
void setTotalScaleFactor(qreal value)

另请参阅 scaleFactor 和lastScaleFactor 。

成员函数文档

[virtual noexcept] QPinchGesture::~QPinchGesture()

析构函数。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.