本页内容

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 中手势处理的概述以及在应用程序中使用手势的信息,请参阅《Qt Widgets 与图形视图中的手势》文档。

手势属性

该类拥有一组属性,用户可通过查询这些属性来获取某些与手势相关的参数。例如,捏合手势有一个缩放因子,该因子作为属性对外暴露。

自定义手势识别器的开发者可以添加额外属性,以提供有关手势的更多信息。这可以通过向 QGesture 对象添加新的动态属性,或者通过继承 QGesture 类(或其子类之一)来实现。

手势对象的生命周期

QGesture 实例会在需要时隐式创建,并由 Qt 管理。开发者绝不应手动销毁这些实例,也不应将其存储以备后用,因为 Qt 可能会销毁特定的实例并创建新的实例来替换它们。

已注册的手势识别器通过其recognize()函数监听目标对象的输入事件,并根据需要更新手势对象的属性。

如果对应的手势处于活动状态或刚刚被取消,则手势对象可能会通过QGestureEvent 传递给目标对象。由于目标对象可能启用了对多个手势的支持,因此每个传递的事件都包含一个手势对象列表。由于Qt中事件的处理方式,手势事件可能会被其他对象过滤。

另请参阅 QGestureEvent 和QGestureRecognizer 。

成员类型文档

enum QGesture::GestureCancelPolicy

此枚举描述了接受一个手势如何能自动取消其他手势。

常量值描述
QGesture::CancelNone0接受此手势时,其他手势不会受到影响。
QGesture::CancelAllInContext1接受此手势时,上下文中所有活动的手势(遵循订阅该手势时指定的Qt::GestureFlag )都将被取消。

属性文档

gestureCancelPolicy : QGesture::GestureCancelPolicy

该属性用于指定在接受手势时如何处理的相关策略

在接收到一个手势时,Qt 可以自动取消属于其他目标的其他手势。该策略通常设置为不取消任何其他手势,也可以设置为取消上下文中所有活动的手势。例如,针对所有子控件。

访问函数:

QGesture::GestureCancelPolicy gestureCancelPolicy() const
void setGestureCancelPolicy(QGesture::GestureCancelPolicy policy)

[read-only] gestureType : Qt::GestureType

该属性保存手势的类型

访问函数:

Qt::GestureType gestureType() const

[read-only] hasHotSpot : bool

该属性表示该手势是否具有热区

访问函数:

bool hasHotSpot() const

hotSpot : QPointF

该属性存储用于查找手势事件接收器的点。

热点是全局坐标系中的一个点,请使用QWidget::mapFromGlobal() 或QGestureEvent::mapToGraphicsScene() 获取本地热点。

热区应由手势识别器设置,以便将手势事件传递给QGraphicsObject 。

访问函数:

QPointF hotSpot() const
void setHotSpot(const QPointF &value)
void unsetHotSpot()

[read-only] state : Qt::GestureState

该属性存储手势的当前状态

访问函数:

Qt::GestureState state() const

成员函数文档

[explicit] QGesture::QGesture(QObject *parent = nullptr)

使用给定的parent 创建一个新的手势对象。

QGesture 对象由手势识别器在QGestureRecognizer::create() 函数中创建。

[virtual noexcept] QGesture::~QGesture()

销毁手势对象。

© 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.