QtBase  v6.3.1
Public Member Functions | List of all members
QMouseEvent Class Reference

The QMouseEvent class contains parameters that describe a mouse event. More...

#include <qevent.h>

Inheritance diagram for QMouseEvent:
Inheritance graph
[legend]
Collaboration diagram for QMouseEvent:
Collaboration graph
[legend]

Public Member Functions

 QMouseEvent (Type type, const QPointF &localPos, Qt::MouseButton button, Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, const QPointingDevice *device=QPointingDevice::primaryPointingDevice())
 
 QMouseEvent (Type type, const QPointF &localPos, 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, 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())
 
 ~QMouseEvent ()
 
QMouseEventclone () const override
 
QPoint pos () const
 
Qt::MouseEventFlags flags () const
 
- Public Member Functions inherited from QSinglePointEvent
Qt::MouseButton button () const
 
Qt::MouseButtons buttons () const
 
QPointF position () const
 
QPointF scenePosition () const
 
QPointF globalPosition () const
 
bool isBeginEvent () const override
 
bool isUpdateEvent () const override
 
bool isEndEvent () const override
 
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={})
 
 ~QPointerEvent ()
 
const QPointingDevicepointingDevice () const
 
QPointingDevice::PointerType pointerType () const
 
void setTimestamp (quint64 timestamp) override
 
qsizetype pointCount () const
 
QEventPointpoint (qsizetype i)
 
const QList< QEventPoint > & points () const
 
QEventPointpointById (int id)
 
bool allPointsGrabbed () const
 
bool allPointsAccepted () const
 
virtual void setAccepted (bool accepted) override
 
QObjectexclusiveGrabber (const QEventPoint &point) const
 
void setExclusiveGrabber (const QEventPoint &point, QObject *exclusiveGrabber)
 
QList< QPointer< QObject > > passiveGrabbers (const QEventPoint &point) const
 
void clearPassiveGrabbers (const QEventPoint &point)
 
bool addPassiveGrabber (const QEventPoint &point, QObject *grabber)
 
bool removePassiveGrabber (const QEventPoint &point, QObject *grabber)
 
- Public Member Functions inherited from QInputEvent
 QInputEvent (Type type, const QInputDevice *m_dev, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
 
 ~QInputEvent ()
 
const QInputDevicedevice () const
 
QInputDevice::DeviceType deviceType () const
 
Qt::KeyboardModifiers modifiers () const
 
void setModifiers (Qt::KeyboardModifiers modifiers)
 
quint64 timestamp () const
 
- Public Member Functions inherited from QEvent
 QEvent (Type type)
 
virtual ~QEvent ()
 
Type type () const
 
bool spontaneous () const
 
bool isAccepted () const
 
void accept ()
 
void ignore ()
 
bool isInputEvent () const noexcept
 
bool isPointerEvent () const noexcept
 
bool isSinglePointEvent () const noexcept
 

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 , User = 1000 , MaxUser = 65535
}
 
- 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
 QEvent (Type type, InputEventTag)
 
 QEvent (Type type, PointerEventTag)
 
 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
Q_GADGETQObject * exclusivePointGrabber
 the object that will receive future updates More...
 

Detailed Description

The QMouseEvent class contains parameters that describe a mouse event.

\inmodule QtGui

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 230 of file qevent.h.

Constructor & Destructor Documentation

◆ QMouseEvent() [1/4]

QMouseEvent::QMouseEvent ( Type  type,
const QPointF localPos,
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 one of 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 window position is set to the same value as localPos. The button that caused the event is given as a value from the Qt::MouseButton enum. If the event type is \l MouseMove, the appropriate button for this event is Qt::NoButton. The mouse and keyboard states at the time of the event are specified by buttons and modifiers.

The globalPosition() is initialized to QCursor::pos(), which may not be appropriate. Use the other constructor to specify the global position explicitly.

Definition at line 714 of file qevent.cpp.

◆ QMouseEvent() [2/4]

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 744 of file qevent.cpp.

◆ QMouseEvent() [3/4]

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() [4/4]

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() 
)

◆ ~QMouseEvent()

QMouseEvent::~QMouseEvent ( )

Definition at line 787 of file qevent.cpp.

Member Function Documentation

◆ clone()

QMouseEvent* QMouseEvent::clone ( ) const
inlineoverridevirtual

Creates and returns an identical copy of this event.

Since
6.0

Reimplemented from QSinglePointEvent.

Definition at line 251 of file qevent.h.

Here is the caller graph for this function:

◆ flags()

Qt::MouseEventFlags QMouseEvent::flags ( ) 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

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 837 of file qevent.cpp.

◆ pos()

QPoint QMouseEvent::pos ( ) const
inline

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 254 of file qevent.h.

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

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