Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QPointerEvent Class Reference

A base class for pointer events. More...

#include <qevent.h>

+ Inheritance diagram for QPointerEvent:
+ Collaboration diagram for QPointerEvent:

Public Member Functions

 QPointerEvent (Type type, const QPointingDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier, const QList< QEventPoint > &points={})
 
const QPointingDevicepointingDevice () const
 Returns the source device from which this event originates.
 
QPointingDevice::PointerType pointerType () const
 Returns the type of point that generated the event.
 
void setTimestamp (quint64 timestamp) override
 
qsizetype pointCount () const
 Returns the number of points in this pointer event.
 
QEventPointpoint (qsizetype i)
 Returns a QEventPoint reference for the point at index i.
 
const QList< QEventPoint > & points () const
 Returns a list of points in this pointer event.
 
QEventPointpointById (int id)
 Returns the point whose \l {QEventPoint::id()}{id} matches the given id, or nullptr if no such point is found.
 
bool allPointsGrabbed () const
 Returns true if every point in points() has either an exclusiveGrabber() or one or more passiveGrabbers().
 
virtual bool isBeginEvent () const
 
virtual bool isUpdateEvent () const
 
virtual bool isEndEvent () const
 
bool allPointsAccepted () const
 Returns true if isPointAccepted() is true for every point in points(); otherwise false.
 
virtual void setAccepted (bool accepted) override
 \reimp
 
QObjectexclusiveGrabber (const QEventPoint &point) const
 Returns the object which has been set to receive all future update events and the release event containing the given point.
 
void setExclusiveGrabber (const QEventPoint &point, QObject *exclusiveGrabber)
 Informs the delivery logic that the given exclusiveGrabber is to receive all future update events and the release event containing the given point, and that delivery to other items can be skipped.
 
QList< QPointer< QObject > > passiveGrabbers (const QEventPoint &point) const
 Returns the list of objects that have been requested to receive all future update events and the release event containing the given point.
 
void clearPassiveGrabbers (const QEventPoint &point)
 Removes all passive grabbers from the given point.
 
bool addPassiveGrabber (const QEventPoint &point, QObject *grabber)
 Informs the delivery logic that the given grabber is to receive all future update events and the release event containing the given point, regardless where else those events may be delivered.
 
bool removePassiveGrabber (const QEventPoint &point, QObject *grabber)
 Removes the passive grabber from the given point if it was previously added.
 
- Public Member Functions inherited from QInputEvent
 QInputEvent (Type type, const QInputDevice *m_dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 
const QInputDevicedevice () const
 
QInputDevice::DeviceType deviceType () const
 Returns the type of device that generated the event.
 
Qt::KeyboardModifiers modifiers () const
 Returns the keyboard modifier flags that existed immediately before the event occurred.
 
void setModifiers (Qt::KeyboardModifiers modifiers)
 
quint64 timestamp () const
 Returns the window system's timestamp for this event.
 
virtual void setTimestamp (quint64 timestamp)
 
- Public Member Functions inherited from QEvent
 QEvent (Type type)
 Constructs an event object of type type.
 
virtual ~QEvent ()
 Destroys the event.
 
Type type () const
 Returns the event type.
 
bool spontaneous () const
 Returns true if the event originated outside the application (a system event); otherwise returns false.
 
virtual void setAccepted (bool accepted)
 
bool isAccepted () const
 
void accept ()
 Sets the accept flag of the event object, the equivalent of calling setAccepted(true).
 
void ignore ()
 Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).
 
bool isInputEvent () const noexcept
 
bool isPointerEvent () const noexcept
 
bool isSinglePointEvent () const noexcept
 
virtual QEventclone () const
 Creates and returns an identical copy of this event.
 

Protected Member Functions

 QPointerEvent (Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 
- Protected Member Functions inherited from QInputEvent
 QInputEvent (Type type, PointerEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 
 QInputEvent (Type type, SinglePointEventTag, const QInputDevice *dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 
- Protected Member Functions inherited from QEvent
 QEvent (Type type, InputEventTag)
 
 QEvent (Type type, PointerEventTag)
 
 QEvent (Type type, SinglePointEventTag)
 

Protected Attributes

QList< QEventPointm_points
 
- Protected Attributes inherited from QInputEvent
const QInputDevicem_dev = nullptr
 
quint64 m_timeStamp = 0
 
Qt::KeyboardModifiers m_modState = Qt::NoModifier
 
quint32 m_reserved = 0
 
- Protected Attributes inherited from QEvent
quint16 t
 

Additional Inherited Members

- Public Types inherited from QEvent
enum  Type {
  None = 0 , Timer = 1 , MouseButtonPress = 2 , MouseButtonRelease = 3 ,
  MouseButtonDblClick = 4 , MouseMove = 5 , KeyPress = 6 , KeyRelease = 7 ,
  FocusIn = 8 , FocusOut = 9 , FocusAboutToChange = 23 , Enter = 10 ,
  Leave = 11 , Paint = 12 , Move = 13 , Resize = 14 ,
  Create = 15 , Destroy = 16 , Show = 17 , Hide = 18 ,
  Close = 19 , Quit = 20 , ParentChange = 21 , ParentAboutToChange = 131 ,
  ThreadChange = 22 , WindowActivate = 24 , WindowDeactivate = 25 , ShowToParent = 26 ,
  HideToParent = 27 , Wheel = 31 , WindowTitleChange = 33 , WindowIconChange = 34 ,
  ApplicationWindowIconChange = 35 , ApplicationFontChange = 36 , ApplicationLayoutDirectionChange = 37 , ApplicationPaletteChange = 38 ,
  PaletteChange = 39 , Clipboard = 40 , Speech = 42 , MetaCall = 43 ,
  SockAct = 50 , WinEventAct = 132 , DeferredDelete = 52 , DragEnter = 60 ,
  DragMove = 61 , DragLeave = 62 , Drop = 63 , DragResponse = 64 ,
  ChildAdded = 68 , ChildPolished = 69 , ChildRemoved = 71 , ShowWindowRequest = 73 ,
  PolishRequest = 74 , Polish = 75 , LayoutRequest = 76 , UpdateRequest = 77 ,
  UpdateLater = 78 , EmbeddingControl = 79 , ActivateControl = 80 , DeactivateControl = 81 ,
  ContextMenu = 82 , InputMethod = 83 , TabletMove = 87 , LocaleChange = 88 ,
  LanguageChange = 89 , LayoutDirectionChange = 90 , Style = 91 , TabletPress = 92 ,
  TabletRelease = 93 , OkRequest = 94 , HelpRequest = 95 , IconDrag = 96 ,
  FontChange = 97 , EnabledChange = 98 , ActivationChange = 99 , StyleChange = 100 ,
  IconTextChange = 101 , ModifiedChange = 102 , MouseTrackingChange = 109 , WindowBlocked = 103 ,
  WindowUnblocked = 104 , WindowStateChange = 105 , ReadOnlyChange = 106 , ToolTip = 110 ,
  WhatsThis = 111 , StatusTip = 112 , ActionChanged = 113 , ActionAdded = 114 ,
  ActionRemoved = 115 , FileOpen = 116 , Shortcut = 117 , ShortcutOverride = 51 ,
  WhatsThisClicked = 118 , ToolBarChange = 120 , ApplicationActivate = 121 , ApplicationActivated = ApplicationActivate ,
  ApplicationDeactivate = 122 , ApplicationDeactivated = ApplicationDeactivate , QueryWhatsThis = 123 , EnterWhatsThisMode = 124 ,
  LeaveWhatsThisMode = 125 , ZOrderChange = 126 , HoverEnter = 127 , HoverLeave = 128 ,
  HoverMove = 129 , AcceptDropsChange = 152 , ZeroTimerEvent = 154 , GraphicsSceneMouseMove = 155 ,
  GraphicsSceneMousePress = 156 , GraphicsSceneMouseRelease = 157 , GraphicsSceneMouseDoubleClick = 158 , GraphicsSceneContextMenu = 159 ,
  GraphicsSceneHoverEnter = 160 , GraphicsSceneHoverMove = 161 , GraphicsSceneHoverLeave = 162 , GraphicsSceneHelp = 163 ,
  GraphicsSceneDragEnter = 164 , GraphicsSceneDragMove = 165 , GraphicsSceneDragLeave = 166 , GraphicsSceneDrop = 167 ,
  GraphicsSceneWheel = 168 , GraphicsSceneLeave = 220 , KeyboardLayoutChange = 169 , DynamicPropertyChange = 170 ,
  TabletEnterProximity = 171 , TabletLeaveProximity = 172 , NonClientAreaMouseMove = 173 , NonClientAreaMouseButtonPress = 174 ,
  NonClientAreaMouseButtonRelease = 175 , NonClientAreaMouseButtonDblClick = 176 , MacSizeChange = 177 , ContentsRectChange = 178 ,
  MacGLWindowChange = 179 , FutureCallOut = 180 , GraphicsSceneResize = 181 , GraphicsSceneMove = 182 ,
  CursorChange = 183 , ToolTipChange = 184 , NetworkReplyUpdated = 185 , GrabMouse = 186 ,
  UngrabMouse = 187 , GrabKeyboard = 188 , UngrabKeyboard = 189 , StateMachineSignal = 192 ,
  StateMachineWrapped = 193 , TouchBegin = 194 , TouchUpdate = 195 , TouchEnd = 196 ,
  NativeGesture = 197 , RequestSoftwareInputPanel = 199 , CloseSoftwareInputPanel = 200 , WinIdChange = 203 ,
  Gesture = 198 , GestureOverride = 202 , ScrollPrepare = 204 , Scroll = 205 ,
  Expose = 206 , InputMethodQuery = 207 , OrientationChange = 208 , TouchCancel = 209 ,
  ThemeChange = 210 , SockClose = 211 , PlatformPanel = 212 , StyleAnimationUpdate = 213 ,
  ApplicationStateChange = 214 , WindowChangeInternal = 215 , ScreenChangeInternal = 216 , PlatformSurface = 217 ,
  Pointer = 218 , TabletTrackingChange = 219 , WindowAboutToChangeInternal = 221 , DevicePixelRatioChange = 222 ,
  User = 1000 , MaxUser = 65535
}
 This enum type defines the valid event types in Qt. More...
 
- Static Public Member Functions inherited from QEvent
static int registerEventType (int hint=-1) noexcept
 

Detailed Description

A base class for pointer events.

Since
6.0 \inmodule QtGui

Definition at line 72 of file qevent.h.

Constructor & Destructor Documentation

◆ QPointerEvent() [1/2]

QPointerEvent::QPointerEvent ( Type  type,
const QPointingDevice dev,
Qt::KeyboardModifiers  modifiers = Qt::NoModifier,
const QList< QEventPoint > &  points = {} 
)
explicit

◆ QPointerEvent() [2/2]

QPointerEvent::QPointerEvent ( Type  type,
SinglePointEventTag  ,
const QInputDevice dev,
Qt::KeyboardModifiers  modifiers = Qt::NoModifier 
)
protected

Member Function Documentation

◆ addPassiveGrabber()

bool QPointerEvent::addPassiveGrabber ( const QEventPoint point,
QObject grabber 
)

Informs the delivery logic that the given grabber is to receive all future update events and the release event containing the given point, regardless where else those events may be delivered.

It's only for use by \l {Qt Quick Input Handlers}.

Returns false if grabber was already added, true otherwise.

Definition at line 401 of file qevent.cpp.

References QPointingDevicePrivate::get(), point(), pointingDevice(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ allPointsAccepted()

bool QPointerEvent::allPointsAccepted ( ) const

Returns true if isPointAccepted() is true for every point in points(); otherwise false.

Definition at line 303 of file qevent.cpp.

◆ allPointsGrabbed()

bool QPointerEvent::allPointsGrabbed ( ) const

Returns true if every point in points() has either an exclusiveGrabber() or one or more passiveGrabbers().

Definition at line 290 of file qevent.cpp.

References exclusiveGrabber(), QList< T >::isEmpty(), and passiveGrabbers().

+ Here is the call graph for this function:

◆ clearPassiveGrabbers()

void QPointerEvent::clearPassiveGrabbers ( const QEventPoint point)

Removes all passive grabbers from the given point.

It's only for use by \l {Qt Quick Input Handlers}.

See also
QPointerEvent::addPassiveGrabber()

Definition at line 430 of file qevent.cpp.

References QPointingDevicePrivate::get(), point(), pointingDevice(), and Q_ASSERT.

Referenced by QQuickWindowPrivate::clearGrabbers(), QGuiApplicationPrivate::processMouseEvent(), and QPointingDevicePrivate::sendTouchCancelEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ exclusiveGrabber()

QObject * QPointerEvent::exclusiveGrabber ( const QEventPoint point) const

Returns the object which has been set to receive all future update events and the release event containing the given point.

It's mainly for use in Qt Quick at this time.

Definition at line 348 of file qevent.cpp.

References QPointingDevicePrivate::get(), QEventPoint::id, point(), pointingDevice(), Q_ASSERT, Q_UNLIKELY, QPointingDevicePrivate::queryPointById(), and qWarning.

Referenced by allPointsGrabbed(), QQuickDeliveryAgentPrivate::allPointsGrabbed(), QQuickDeliveryAgentPrivate::anyPointGrabbed(), QQuickPathView::childMouseEventFilter(), QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(), QQuickDeliveryAgentPrivate::deliverToPassiveGrabbers(), QQuickDeliveryAgentPrivate::deliverTouchAsMouse(), QQuickWidget::event(), QQuickDeliveryAgentPrivate::exclusiveGrabbers(), QSinglePointEvent::exclusivePointGrabber(), QQuickPointerHandler::setExclusiveGrab(), and setExclusiveGrabber().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isBeginEvent()

virtual bool QPointerEvent::isBeginEvent ( ) const
inlinevirtual

Reimplemented in QSinglePointEvent, and QTouchEvent.

Definition at line 89 of file qevent.h.

Referenced by QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem().

+ Here is the caller graph for this function:

◆ isEndEvent()

virtual bool QPointerEvent::isEndEvent ( ) const
inlinevirtual

Reimplemented in QSinglePointEvent, and QTouchEvent.

Definition at line 91 of file qevent.h.

Referenced by QQuickWindowPrivate::clearGrabbers(), and QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem().

+ Here is the caller graph for this function:

◆ isUpdateEvent()

virtual bool QPointerEvent::isUpdateEvent ( ) const
inlinevirtual

Reimplemented in QSinglePointEvent, QHoverEvent, and QTouchEvent.

Definition at line 90 of file qevent.h.

Referenced by QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem().

+ Here is the caller graph for this function:

◆ passiveGrabbers()

QList< QPointer< QObject > > QPointerEvent::passiveGrabbers ( const QEventPoint point) const

Returns the list of objects that have been requested to receive all future update events and the release event containing the given point.

It's only for use by \l {Qt Quick Input Handlers}.

See also
QPointerEvent::addPassiveGrabber()

Definition at line 381 of file qevent.cpp.

References QPointingDevicePrivate::get(), QEventPoint::id, point(), pointingDevice(), Q_ASSERT, Q_UNLIKELY, QPointingDevicePrivate::queryPointById(), and qWarning.

Referenced by allPointsGrabbed(), QQuickDeliveryAgentPrivate::allPointsGrabbed(), and QQuickDeliveryAgentPrivate::anyPointGrabbed().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ point()

◆ pointById()

QEventPoint * QPointerEvent::pointById ( int  id)

Returns the point whose \l {QEventPoint::id()}{id} matches the given id, or nullptr if no such point is found.

Definition at line 277 of file qevent.cpp.

References m_points.

◆ pointCount()

qsizetype QPointerEvent::pointCount ( ) const
inline

Returns the number of points in this pointer event.

Definition at line 84 of file qevent.h.

Referenced by QQuickDeliveryAgentPrivate::localizePointerEvent().

+ Here is the caller graph for this function:

◆ pointerType()

QPointingDevice::PointerType QPointerEvent::pointerType ( ) const
inline

Returns the type of point that generated the event.

Definition at line 80 of file qevent.h.

References QPointingDevice::Unknown.

◆ pointingDevice()

const QPointingDevice * QPointerEvent::pointingDevice ( ) const

◆ points()

◆ removePassiveGrabber()

bool QPointerEvent::removePassiveGrabber ( const QEventPoint point,
QObject grabber 
)

Removes the passive grabber from the given point if it was previously added.

Returns true if it had been a passive grabber before, false if not.

It's only for use by \l {Qt Quick Input Handlers}.

See also
QPointerEvent::addPassiveGrabber()

Definition at line 416 of file qevent.cpp.

References QPointingDevicePrivate::get(), point(), pointingDevice(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ setAccepted()

void QPointerEvent::setAccepted ( bool  accepted)
overridevirtual

\reimp

Reimplemented from QEvent.

Definition at line 315 of file qevent.cpp.

References m_points, and QEvent::setAccepted().

Referenced by QQuickFlickablePrivate::captureDelayedPress(), QQuickPathView::childMouseEventFilter(), QQuickDeliveryAgentPrivate::deliverHoverEventToItem(), QQuickDeliveryAgent::event(), QGraphicsViewPrivate::mouseMoveEventHandler(), QApplication::notify(), QQuickDeliveryAgentPrivate::sendHoverEvent(), QQuickMouseArea::sendMouseEvent(), and QQuickMultiPointTouchArea::sendMouseEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setExclusiveGrabber()

void QPointerEvent::setExclusiveGrabber ( const QEventPoint point,
QObject exclusiveGrabber 
)

Informs the delivery logic that the given exclusiveGrabber is to receive all future update events and the release event containing the given point, and that delivery to other items can be skipped.

It's mainly for use in Qt Quick at this time.

Definition at line 366 of file qevent.cpp.

References exclusiveGrabber(), QPointingDevicePrivate::get(), point(), pointingDevice(), and Q_ASSERT.

Referenced by QQuickPathView::childMouseEventFilter(), QQuickWindowPrivate::clearGrabbers(), QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(), QQuickDeliveryAgentPrivate::deliverTouchAsMouse(), QGuiApplicationPrivate::processMouseEvent(), QQuickDeliveryAgentPrivate::removeGrabber(), QPointingDevicePrivate::sendTouchCancelEvent(), QQuickPointerHandler::setExclusiveGrab(), and QSinglePointEvent::setExclusivePointGrabber().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setTimestamp()

void QPointerEvent::setTimestamp ( quint64  timestamp)
overridevirtual

Sets the timestamp for this event and its points().

Reimplemented from QInputEvent.

Definition at line 335 of file qevent.cpp.

References m_points, QMutableEventPoint::setTimestamp(), QInputEvent::setTimestamp(), and QInputEvent::timestamp().

Referenced by copyMouseEvent(), QQuickDeliveryAgentPrivate::deliverHoverEventToItem(), QQuickWindow::event(), QtQuickTest::mouseEvent(), QApplication::notify(), QGuiApplicationPrivate::processMouseEvent(), QGuiApplicationPrivate::processTouchEvent(), QQuickDeliveryAgentPrivate::sendHoverEvent(), and QGraphicsProxyWidgetPrivate::sendWidgetMouseEvent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_points

QList<QEventPoint> QPointerEvent::m_points
protected

Definition at line 104 of file qevent.h.

Referenced by QMutableTouchEvent::addPoint(), pointById(), setAccepted(), and setTimestamp().


The documentation for this class was generated from the following files: