QGesture Class
QGesture 类代表一个手势,包含描述相应用户输入的属性。更多
头文件: | #include <QGesture> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
继承: | QObject |
继承者: | QPanGesture,QPinchGesture,QSwipeGesture,QTapAndHoldGesture, 以及QTapGesture |
公共类型
enum | GestureCancelPolicy { CancelNone, CancelAllInContext } |
属性
|
公共功能
QGesture(QObject *parent = nullptr) | |
virtual | ~QGesture() |
QGesture::GestureCancelPolicy | gestureCancelPolicy() const |
Qt::GestureType | gestureType() const |
bool | hasHotSpot() const |
QPointF | hotSpot() const |
void | setGestureCancelPolicy(QGesture::GestureCancelPolicy policy) |
void | setHotSpot(const QPointF &value) |
Qt::GestureState | state() const |
void | unsetHotSpot() |
详细说明
开发人员不会直接创建手势对象。手势对象由在应用程序中注册的QGestureRecognizer 对象创建;请参阅QGestureRecognizer::registerRecognizer() 。
有关 Qt 中手势处理的概述以及在应用程序中使用手势的信息,请参阅《Widgets 和 Graphics View 中的手势》文档。
手势属性
该类有一个属性列表,用户可以通过查询这些属性来获得一些特定手势的参数。例如,"捏 "手势有一个缩放因子,可作为属性公开。
自定义手势识别器的开发人员可以添加其他属性,以提供有关手势的其他信息。这可以通过向 QGesture 对象添加新的动态属性,或通过子类化 QGesture 类(或其子类之一)来实现。
手势对象的生命周期
QGesture 实例是在需要时隐式创建的,归 Qt 所有。开发人员不应销毁它们或将其存储起来以备日后使用,因为 Qt 可能会销毁它们的特定实例并创建新的实例来替代它们。
已注册的手势识别器通过其recognize() 函数监控目标对象的输入事件,并根据需要更新手势对象的属性。
如果相应的手势处于激活状态或刚刚被取消,手势对象可以通过QGestureEvent 发送给目标对象。由于目标对象可能启用了对多个手势的支持,因此传递的每个事件都包含一个手势对象列表。由于 Qt 处理事件的方式,手势事件可能会被其他对象过滤。
另请参阅 QGestureEvent 和QGestureRecognizer 。
成员类型文档
enum QGesture::GestureCancelPolicy
该枚举描述了接受一个手势如何自动取消其他手势。
常量 | 值 | 说明 |
---|---|---|
QGesture::CancelNone | 0 | 接受该手势时,其他手势不受影响。 |
QGesture::CancelAllInContext | 1 | 接受该手势时,上下文中所有激活的手势(尊重订阅手势时指定的Qt::GestureFlag )都将被取消。 |
属性文档
gestureCancelPolicy : QGesture::GestureCancelPolicy
该属性保存了决定接受手势时会发生什么的策略
在接受一个手势时,Qt 可以自动取消属于其他目标的其他手势。该策略通常设置为不取消任何其他手势,也可以设置为取消上下文中的所有活动手势。例如所有子部件。
访问功能:
QGesture::GestureCancelPolicy | gestureCancelPolicy() const |
void | setGestureCancelPolicy(QGesture::GestureCancelPolicy policy) |
[read-only]
gestureType : const Qt::GestureType
此属性表示手势的类型
访问功能:
Qt::GestureType | gestureType() const |
[read-only]
hasHotSpot : const bool
该属性用于确定手势是否有热点
访问功能:
bool | hasHotSpot() const |
hotSpot : QPointF
该属性包含用于查找手势事件接收器的热点。
热点是全局坐标系中的一个点,使用QWidget::mapFromGlobal() 或QGestureEvent::mapToGraphicsScene() 获取本地热点。
热点应由手势识别器设置,以便将手势事件传送到QGraphicsObject 。
访问功能:
QPointF | hotSpot() const |
void | setHotSpot(const QPointF &value) |
void | unsetHotSpot() |
[read-only]
state : const Qt::GestureState
该属性保存手势的当前状态
访问函数:
Qt::GestureState | state() const |
成员函数文档
[explicit]
QGesture::QGesture(QObject *parent = nullptr)
用给定的parent 构建一个新的手势对象。
QGesture 对象由手势识别器在QGestureRecognizer::create() 函数中创建。
[virtual noexcept]
QGesture::~QGesture()
销毁手势对象。
© 2025 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.