本页内容

QGestureEvent Class

QGestureEvent 类提供了关于已触发手势的描述。更多内容...

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

公共函数

QGestureEvent(const QList<QGesture *> &gestures)
virtual ~QGestureEvent()
void accept(QGesture *gesture)
void accept(Qt::GestureType gestureType)
QList<QGesture *> activeGestures() const
QList<QGesture *> canceledGestures() const
QGesture *gesture(Qt::GestureType type) const
QList<QGesture *> gestures() const
void ignore(QGesture *gesture)
void ignore(Qt::GestureType gestureType)
bool isAccepted(QGesture *gesture) const
bool isAccepted(Qt::GestureType gestureType) const
QPointF mapToGraphicsScene(const QPointF &gesturePoint) const
void setAccepted(QGesture *gesture, bool value)
void setAccepted(Qt::GestureType gestureType, bool value)
QWidget *widget() const

详细说明

QGestureEvent 类包含一个手势列表,可通过gestures() 函数获取该列表。

手势分为“活动”和“已取消”两种状态。可以使用activeGestures()函数获取当前正在执行的手势列表。可以使用canceledGestures()函数访问先前处于活动状态但已被取消的手势列表。例如,当当前窗口失去焦点时,或者由于超时或其他原因,手势可能会被取消。

如果事件处理程序未通过调用通用函数QEvent::accept() 接受该事件,则所有未被接受且处于Qt::GestureStarted 状态的单独QGesture 对象,都将沿父控件链向上传播,直到某个控件通过分别调用QGestureEvent::accept() 接受它们,或者某个事件过滤器消耗该事件为止。

进一步阅读

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

另请参阅 QGesture 、QGestureRecognizer 、QWidget::grabGesture() 以及QGraphicsObject::grabGesture()。

成员函数文档

[explicit] QGestureEvent::QGestureEvent(const QList<QGesture *> &gestures)

创建一个新的 QGestureEvent,其中包含一个gestures 列表。

[virtual noexcept] QGestureEvent::~QGestureEvent()

销毁QGestureEvent 。

void QGestureEvent::accept(QGesture *gesture)

设置给定gesture 对象的接受标志,这相当于调用setAccepted(gesture, true)。

设置“accept”标志表示事件接收器希望处理该手势。不需要的手势可能会传播到父控件。

另请参阅 QGestureEvent::ignore()。

void QGestureEvent::accept(Qt::GestureType gestureType)

设置指定gestureType 的接受标志,这相当于调用setAccepted(gestureType, true)。

设置“接受”标志表示事件接收器希望接收该手势。不需要的手势可能会传播到父控件。

另请参阅 QGestureEvent::ignore()。

QList<QGesture *> QGestureEvent::activeGestures() const

返回一个包含所有活跃(未取消)手势的列表。

QList<QGesture *> QGestureEvent::canceledGestures() const

返回一个已取消的手势列表。

QGesture *QGestureEvent::gesture(Qt::GestureType type) const

通过type 返回一个手势对象。

QList<QGesture *> QGestureEvent::gestures() const

返回该事件中传递的所有手势。

void QGestureEvent::ignore(QGesture *gesture)

清除给定gesture 对象的“accept”标志参数,这相当于调用setAccepted(gesture, false)。

清除“接受”标志表示事件接收器不希望接收该手势。不需要的手势可能会传播到父控件。

另请参阅 QGestureEvent::accept()。

void QGestureEvent::ignore(Qt::GestureType gestureType)

清除给定gestureType 的accept flag参数,相当于调用setAccepted(gesture, false)。

清除“accept”标志表示事件接收器不希望处理该手势。不需要的手势可能会传播到父控件。

另请参阅 QGestureEvent::accept()。

bool QGestureEvent::isAccepted(QGesture *gesture) const

如果gesture 被接受,则返回true ;否则返回false 。

bool QGestureEvent::isAccepted(Qt::GestureType gestureType) const

如果类型为gestureType 的手势被接受,则返回true ;否则返回false 。

QPointF QGestureEvent::mapToGraphicsScene(const QPointF &gesturePoint) const

如果gesturePoint 位于图形视图内,则返回场景本机坐标。

当手势事件传递给QGraphicsObject 时,此函数可用于将屏幕坐标系中的点转换为场景本机坐标系。

另请参阅 ` QPointF::isNull()`。

void QGestureEvent::setAccepted(QGesture *gesture, bool value)

将给定gesture 对象的accept标志设置为指定的value 。

设置“接受”标志表示事件接收器希望接收gesture 。不需要的手势可能会传播到父控件。

默认情况下,QEvent::Gesture 类型事件中的手势会被接受,而QEvent::GestureOverride 事件中的手势会被忽略。

为方便起见,也可以使用accept(gesture) 设置 accept 标志,并使用ignore(gesture) 清除该标志。

另请参阅 isAccepted()。

void QGestureEvent::setAccepted(Qt::GestureType gestureType, bool value)

将给定gestureType 对象的accept标志设置为指定的value 。

设置“接受”标志表示事件接收器希望接收指定类型(gestureType )的手势。不需要的手势可能会传播到父控件。

默认情况下,QEvent::Gesture 类型的事件中的手势会被接受,而QEvent::GestureOverride 类型的事件中的手势会被忽略。

为方便起见,也可以使用accept(gestureType) 设置 accept 标志,并使用ignore(gestureType) 清除该标志。

QWidget *QGestureEvent::widget() const

返回发生该事件的控件。

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