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::ScaleFactorChanged | 0x1 | scaleFactor 持有的缩放因子发生了变化。 |
QPinchGesture::RotationAngleChanged | 0x2 | rotationAngle 持有的旋转角度发生了变化。 |
QPinchGesture::CenterPointChanged | 0x4 | centerPoint 持有的中心点发生了变化。 |
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 。
© 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.