Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QMouseEvent Class Reference

\inmodule QtGui More...

#include <qevent.h>

+ Inheritance diagram for QMouseEvent:
+ Collaboration diagram for QMouseEvent:

Public Member Functions

 QMouseEvent (Type type, const QPointF &localPos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device=QPointingDevice::primaryPointingDevice())
 Constructs a mouse event object originating from device.
 
 QMouseEvent (Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device=QPointingDevice::primaryPointingDevice())
 
 QMouseEvent (Type type, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source, const QPointingDevice *device=QPointingDevice::primaryPointingDevice())
 
QPoint pos () const
 
Qt::MouseEventSource source () const
 
Qt::MouseEventFlags flags () const
 
- Public Member Functions inherited from QSinglePointEvent
Qt::MouseButton button () const
 Returns the button that caused the event.
 
Qt::MouseButtons buttons () const
 Returns the button state when the event was generated.
 
QPointF position () const
 Returns the position of the point in this event, relative to the widget or item that received the event.
 
QPointF scenePosition () const
 Returns the position of the point in this event, relative to the window or scene.
 
QPointF globalPosition () const
 Returns the position of the point in this event on the screen or virtual desktop.
 
bool isBeginEvent () const override
 Returns true if this event represents a \l {button()}{button} being pressed.
 
bool isUpdateEvent () const override
 Returns true if this event does not include a change in \l {buttons()}{button state}.
 
bool isEndEvent () const override
 Returns true if this event represents a \l {button()}{button} being released.
 
QObjectexclusivePointGrabber () const
 
void setExclusivePointGrabber (QObject *exclusiveGrabber)
 
- Public Member Functions inherited from QPointerEvent
 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().
 
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.
 
- 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.
 
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.
 

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 ,
  ChildWindowAdded = 223 , ChildWindowRemoved = 224 , ParentWindowAboutToChange = 225 , ParentWindowChange = 226 ,
  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
 
- Protected Member Functions inherited from QSinglePointEvent
 QSinglePointEvent (Type type, const QPointingDevice *dev, const QEventPoint &point, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source)
 
 QSinglePointEvent (Type type, const QPointingDevice *dev, const QPointF &localPos, const QPointF &scenePos, const QPointF &globalPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source=Qt::MouseEventNotSynthesized)
 
- Protected Member Functions inherited from QPointerEvent
 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
 QT_DEFINE_TAG_STRUCT (InputEventTag)
 
 QEvent (Type type, InputEventTag)
 
 QT_DEFINE_TAG_STRUCT (PointerEventTag)
 
 QEvent (Type type, PointerEventTag)
 
 QT_DEFINE_TAG_STRUCT (SinglePointEventTag)
 
 QEvent (Type type, SinglePointEventTag)
 
- Protected Attributes inherited from QSinglePointEvent
Qt::MouseButton m_button = Qt::NoButton
 
Qt::MouseButtons m_mouseState = Qt::NoButton
 
Qt::MouseEventSource m_source
 
quint16 m_reserved
 
quint16 m_reserved2: 11
 
quint16 m_doubleClick: 1
 
quint16 m_phase: 3
 
quint16 m_invertedScrolling: 1
 
- Protected Attributes inherited from QPointerEvent
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
 
- Properties inherited from QSinglePointEvent
QObjectexclusivePointGrabber
 the object that will receive future updates
 

Detailed Description

\inmodule QtGui

The QMouseEvent class contains parameters that describe a mouse event.

Mouse events occur when a mouse button is pressed or released inside a widget, or when the mouse cursor is moved.

Mouse move events will occur only when a mouse button is pressed down, unless mouse tracking has been enabled with QWidget::setMouseTracking().

Qt automatically grabs the mouse when a mouse button is pressed inside a widget; the widget will continue to receive mouse events until the last mouse button is released.

A mouse event contains a special accept flag that indicates whether the receiver wants the event. You should call ignore() if the mouse event is not handled by your widget. A mouse event is propagated up the parent widget chain until a widget accepts it with accept(), or an event filter consumes it.

Note
If a mouse event is propagated to a \l{QWidget}{widget} for which Qt::WA_NoMousePropagation has been set, that mouse event will not be propagated further up the parent widget chain.

The state of the keyboard modifier keys can be found by calling the \l{QInputEvent::modifiers()}{modifiers()} function, inherited from QInputEvent.

The position() function gives the cursor position relative to the widget or item that receives the mouse event. If you move the widget as a result of the mouse event, use the global position returned by globalPosition() to avoid a shaking motion.

The QWidget::setEnabled() function can be used to enable or disable mouse and keyboard events for a widget.

Reimplement the QWidget event handlers, QWidget::mousePressEvent(), QWidget::mouseReleaseEvent(), QWidget::mouseDoubleClickEvent(), and QWidget::mouseMoveEvent() to receive mouse events in your own widgets.

See also
QWidget::setMouseTracking(), QWidget::grabMouse(), QCursor::pos()

Definition at line 196 of file qevent.h.

Constructor & Destructor Documentation

◆ QMouseEvent() [1/3]

QMouseEvent::QMouseEvent ( Type type,
const QPointF & localPos,
const QPointF & globalPos,
Qt::MouseButton button,
Qt::MouseButtons buttons,
Qt::KeyboardModifiers modifiers,
const QPointingDevice * device = QPointingDevice::primaryPointingDevice() )

Constructs a mouse event object originating from device.

The type parameter must be QEvent::MouseButtonPress, QEvent::MouseButtonRelease, QEvent::MouseButtonDblClick, or QEvent::MouseMove.

The localPos is the mouse cursor's position relative to the receiving widget or item. The cursor's position in screen coordinates is specified by globalPos. The window position is set to the same value as localPos. The button that caused the event is given as a value from the \l Qt::MouseButton enum. If the event type is \l MouseMove, the appropriate button for this event is Qt::NoButton. buttons is the state of all buttons at the time of the event, modifiers the state of all keyboard modifiers.

Definition at line 726 of file qevent.cpp.

◆ QMouseEvent() [2/3]

QMouseEvent::QMouseEvent ( Type type,
const QPointF & localPos,
const QPointF & scenePos,
const QPointF & globalPos,
Qt::MouseButton button,
Qt::MouseButtons buttons,
Qt::KeyboardModifiers modifiers,
const QPointingDevice * device = QPointingDevice::primaryPointingDevice() )

◆ QMouseEvent() [3/3]

QMouseEvent::QMouseEvent ( Type type,
const QPointF & localPos,
const QPointF & scenePos,
const QPointF & globalPos,
Qt::MouseButton button,
Qt::MouseButtons buttons,
Qt::KeyboardModifiers modifiers,
Qt::MouseEventSource source,
const QPointingDevice * device = QPointingDevice::primaryPointingDevice() )

Member Function Documentation

◆ flags()

Qt::MouseEventFlags QMouseEvent::flags ( ) const
Since
5.3

Returns the mouse event flags.

The mouse event flags provide additional information about a mouse event.

See also
Qt::MouseEventFlag
QGraphicsSceneMouseEvent::flags()

Definition at line 816 of file qevent.cpp.

◆ pos()

QPoint QMouseEvent::pos ( ) const
inline
Deprecated
[6.0] Use position() instead.

Returns the position of the mouse cursor, relative to the widget that received the event.

If you move the widget as a result of the mouse event, use the global position returned by globalPos() to avoid a shaking motion.

See also
x(), y(), globalPos()
Deprecated
[6.0] Use position() instead.

Returns the position of the mouse cursor, relative to the widget that received the event.

If you move the widget as a result of the mouse event, use the global position returned by globalPos() to avoid a shaking motion.

See also
x(), y(), globalPos()

Definition at line 220 of file qevent.h.

◆ source()

Qt::MouseEventSource QMouseEvent::source ( ) const
Since
5.3
Deprecated
[6.0] Use pointingDevice() instead.

Returns information about the mouse event source.

The mouse event source can be used to distinguish between genuine and artificial mouse events. The latter are events that are synthesized from touch events by the operating system or Qt itself. This enum tells you from where it was synthesized; but often it's more useful to know from which device it was synthesized, so try to use pointingDevice() instead.

Note
Many platforms provide no such information. On such platforms \l Qt::MouseEventNotSynthesized is returned always.
See also
Qt::MouseEventSource
QGraphicsSceneMouseEvent::source()
Note
In Qt 5-based code, source() was often used to attempt to distinguish mouse events from an actual mouse vs. those that were synthesized because some legacy QQuickItem or QWidget subclass did not react to a QTouchEvent. However, you could not tell whether it was synthesized from a QTouchEvent or a QTabletEvent, and other information was lost. pointingDevice() tells you the specific device that it came from, so you might check {pointingDevice()->type()} or {pointingDevice()->capabilities()} to decide how to react to this event. But it's even better to react to the original event rather than handling only mouse events.
Since
5.3
Deprecated
[6.0] Use pointingDevice() instead.

Returns information about the mouse event source.

The mouse event source can be used to distinguish between genuine and artificial mouse events. The latter are events that are synthesized from touch events by the operating system or Qt itself. This enum tells you from where it was synthesized; but often it's more useful to know from which device it was synthesized, so try to use pointingDevice() instead.

Note
Many platforms provide no such information. On such platforms \l Qt::MouseEventNotSynthesized is returned always.
See also
Qt::MouseEventSource
QGraphicsSceneMouseEvent::source()
Note
In Qt 5-based code, source() was often used to attempt to distinguish mouse events from an actual mouse vs. those that were synthesized because some legacy QQuickItem or QWidget subclass did not react to a QTouchEvent. However, you could not tell whether it was synthesized from a QTouchEvent or a QTabletEvent, and other information was lost. pointingDevice() tells you the specific device that it came from, so you might check {pointingDevice()->type()} or {pointingDevice()->capabilities()} to decide how to react to this event. But it's even better to react to the original event rather than handling only mouse events.

Definition at line 801 of file qevent.cpp.


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