QEvent Class | Qt Core | Qt 6.10.1
Description: The QEvent class is the base class of all event classes. Event objects contain event parameters.

- Qt 6.10
- Qt Core
- C++ Classes
- QEvent
- Qt 6.10.1 Reference Documentation

# QEvent Class

The QEvent class is the base class of all event classes. Event objects contain event parameters. More...

Header: | `#include <QEvent>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS Core)` `target_link_libraries(mytarget PRIVATE Qt6::Core)`
qmake: | `QT += core`
Inherited By: | QActionEvent, QChildEvent, QChildWindowEvent, QCloseEvent, QDragLeaveEvent, QDropEvent, QDynamicPropertyChangeEvent, QExposeEvent, QFileOpenEvent, QFocusEvent, QGestureEvent, QGraphicsSceneEvent, QHelpEvent, QHideEvent, QIconDragEvent, QInputEvent, QInputMethodEvent, QInputMethodQueryEvent, QMoveEvent, QPaintEvent, QPlatformSurfaceEvent, QResizeEvent, QScrollEvent, QScrollPrepareEvent, QShortcutEvent, QShowEvent, QStateMachine::SignalEvent, QStateMachine::WrappedEvent, QStatusTipEvent, QTimerEvent, QWhatsThisClickedEvent, and QWindowStateChangeEvent

- List of all members, including inherited members
- QEvent is part of Event Classes.

## Public Types

enum | Type { None, ActionAdded, ActionChanged, ActionRemoved, ActivationChange, …, MaxUser }

## Properties

- accepted : bool

## Public Functions

| QEvent(QEvent::Type type)
virtual | ~QEvent()
void | accept()
`(since 6.0)` virtual QEvent * | clone() const
void | ignore()
bool | isAccepted() const
`(since 6.0)` bool | isInputEvent() const
`(since 6.0)` bool | isPointerEvent() const
`(since 6.0)` bool | isSinglePointEvent() const
virtual void | setAccepted(bool accepted)
bool | spontaneous() const
QEvent::Type | type() const

## Static Public Members

int | registerEventType(int hint = -1)

## Detailed Description

Qt's main event loop (QCoreApplication::exec()) fetches native window system events from the event queue, translates them into QEvents, and sends the translated events to QObjects.

In general, events come from the underlying window system (spontaneous() returns `true`), but it is also possible to manually send events using QCoreApplication::sendEvent() and QCoreApplication::postEvent() (spontaneous() returns `false`).

QObjects receive events by having their QObject::event() function called. The function can be reimplemented in subclasses to customize event handling and add additional event types; QWidget::event() is a notable example. By default, events are dispatched to event handlers like QObject::timerEvent() and QWidget::mouseMoveEvent(). QObject::installEventFilter() allows an object to intercept events destined for another object.

The basic QEvent contains only an event type parameter and an "accept" flag. The accept flag set with accept(), and cleared with ignore(). It is set by default, but don't rely on this as subclasses may choose to clear it in their constructor.

Subclasses of QEvent contain additional parameters that describe the particular event.

See also QObject::event(), QObject::installEventFilter(), QCoreApplication::sendEvent(), QCoreApplication::postEvent(), and QCoreApplication::processEvents().

## Member Type Documentation

### enum QEvent::Type

This enum type defines the valid event types in Qt. The event types and the specialized classes for each type are as follows:

Constant | Value | Description
--- | --- | ---
`QEvent::None` | `0` | Not an event.
`QEvent::ActionAdded` | `114` | A new action has been added (QActionEvent).
`QEvent::ActionChanged` | `113` | An action has been changed (QActionEvent).
`QEvent::ActionRemoved` | `115` | An action has been removed (QActionEvent).
`QEvent::ActivationChange` | `99` | A widget's top-level window activation state has changed.
`QEvent::ApplicationActivate` | `121` | This enum has been deprecated. Use ApplicationStateChange instead.
`QEvent::ApplicationActivated` | `ApplicationActivate` | This enum has been deprecated. Use ApplicationStateChange instead.
`QEvent::ApplicationDeactivate` | `122` | This enum has been deprecated. Use ApplicationStateChange instead.
`QEvent::ApplicationFontChange` | `36` | The default application font has changed.
`QEvent::ApplicationLayoutDirectionChange` | `37` | The default application layout direction has changed.
`QEvent::ApplicationPaletteChange` | `38` | The default application palette has changed.
`QEvent::ApplicationStateChange` | `214` | The state of the application has changed.
`QEvent::ApplicationWindowIconChange` | `35` | The application's icon has changed.
`QEvent::ChildAdded` | `68` | An object gets a child (QChildEvent).
`QEvent::ChildPolished` | `69` | A widget child gets polished (QChildEvent).
`QEvent::ChildRemoved` | `71` | An object loses a child (QChildEvent).
`QEvent::ChildWindowAdded (since Qt 6.7)` | `223` | A child window was added to the window.
`QEvent::ChildWindowRemoved (since Qt 6.7)` | `224` | A child window was removed from the window.
`QEvent::Clipboard` | `40` | The clipboard contents have changed.
`QEvent::Close` | `19` | Widget was closed (QCloseEvent).
`QEvent::CloseSoftwareInputPanel` | `200` | A widget wants to close the software input panel (SIP).
`QEvent::ContentsRectChange` | `178` | The margins of the widget's content rect changed.
`QEvent::ContextMenu` | `82` | Context popup menu (QContextMenuEvent).
`QEvent::CursorChange` | `183` | The widget's cursor has changed.
`QEvent::DeferredDelete` | `52` | The object will be deleted after it has cleaned up (QDeferredDeleteEvent)
`QEvent::DevicePixelRatioChange (since Qt 6.6)` | `222` | The devicePixelRatio has changed for this widget's or window's underlying backing store.
`QEvent::DragEnter` | `60` | The cursor enters a widget during a drag and drop operation (QDragEnterEvent).
`QEvent::DragLeave` | `62` | The cursor leaves a widget during a drag and drop operation (QDragLeaveEvent).
`QEvent::DragMove` | `61` | A drag and drop operation is in progress (QDragMoveEvent).
`QEvent::Drop` | `63` | A drag and drop operation is completed (QDropEvent).
`QEvent::DynamicPropertyChange` | `170` | A dynamic property was added, changed, or removed from the object.
`QEvent::EnabledChange` | `98` | Widget's enabled state has changed.
`QEvent::Enter` | `10` | Mouse enters widget's boundaries (QEnterEvent).
`QEvent::EnterEditFocus` | `150` | An editor widget gains focus for editing. `QT_KEYPAD_NAVIGATION` must be defined.
`QEvent::EnterWhatsThisMode` | `124` | Send to toplevel widgets when the application enters "What's This?" mode.
`QEvent::Expose` | `206` | Sent to a window when its on-screen contents are invalidated and need to be flushed from the backing store.
`QEvent::FileOpen` | `116` | File open request (QFileOpenEvent).
`QEvent::FocusIn` | `8` | Widget or Window gains keyboard focus (QFocusEvent).
`QEvent::FocusOut` | `9` | Widget or Window loses keyboard focus (QFocusEvent).
`QEvent::FocusAboutToChange` | `23` | Widget or Window focus is about to change (QFocusEvent)
`QEvent::FontChange` | `97` | Widget's font has changed.
`QEvent::Gesture` | `198` | A gesture was triggered (QGestureEvent).
`QEvent::GestureOverride` | `202` | A gesture override was triggered (QGestureEvent).
`QEvent::GrabKeyboard` | `188` | Item gains keyboard grab (QGraphicsItem only).
`QEvent::GrabMouse` | `186` | Item gains mouse grab (QGraphicsItem only).
`QEvent::GraphicsSceneContextMenu` | `159` | Context popup menu over a graphics scene (QGraphicsSceneContextMenuEvent).
`QEvent::GraphicsSceneDragEnter` | `164` | The cursor enters a graphics scene during a drag and drop operation (QGraphicsSceneDragDropEvent).
`QEvent::GraphicsSceneDragLeave` | `166` | The cursor leaves a graphics scene during a drag and drop operation (QGraphicsSceneDragDropEvent).
`QEvent::GraphicsSceneDragMove` | `165` | A drag and drop operation is in progress over a scene (QGraphicsSceneDragDropEvent).
`QEvent::GraphicsSceneDrop` | `167` | A drag and drop operation is completed over a scene (QGraphicsSceneDragDropEvent).
`QEvent::GraphicsSceneHelp` | `163` | The user requests help for a graphics scene (QHelpEvent).
`QEvent::GraphicsSceneHoverEnter` | `160` | The mouse cursor enters a hover item in a graphics scene (QGraphicsSceneHoverEvent).
`QEvent::GraphicsSceneHoverLeave` | `162` | The mouse cursor leaves a hover item in a graphics scene (QGraphicsSceneHoverEvent).
`QEvent::GraphicsSceneHoverMove` | `161` | The mouse cursor moves inside a hover item in a graphics scene (QGraphicsSceneHoverEvent).
`QEvent::GraphicsSceneMouseDoubleClick` | `158` | Mouse press again (double click) in a graphics scene (QGraphicsSceneMouseEvent).
`QEvent::GraphicsSceneMouseMove` | `155` | Move mouse in a graphics scene (QGraphicsSceneMouseEvent).
`QEvent::GraphicsSceneMousePress` | `156` | Mouse press in a graphics scene (QGraphicsSceneMouseEvent).
`QEvent::GraphicsSceneMouseRelease` | `157` | Mouse release in a graphics scene (QGraphicsSceneMouseEvent).
`QEvent::GraphicsSceneMove` | `182` | Widget was moved (QGraphicsSceneMoveEvent).
`QEvent::GraphicsSceneResize` | `181` | Widget was resized (QGraphicsSceneResizeEvent).
`QEvent::GraphicsSceneWheel` | `168` | Mouse wheel rolled in a graphics scene (QGraphicsSceneWheelEvent).
`QEvent::GraphicsSceneLeave` | `220` | The cursor leaves a graphics scene (QGraphicsSceneWheelEvent).
`QEvent::Hide` | `18` | Widget was hidden (QHideEvent).
`QEvent::HideToParent` | `27` | A child widget has been hidden.
`QEvent::HoverEnter` | `127` | The mouse cursor enters a hover widget (QHoverEvent).
`QEvent::HoverLeave` | `128` | The mouse cursor leaves a hover widget (QHoverEvent).
`QEvent::HoverMove` | `129` | The mouse cursor moves inside a hover widget (QHoverEvent).
`QEvent::IconDrag` | `96` | The main icon of a window has been dragged away (QIconDragEvent).
`QEvent::IconTextChange` | `101` | Widget's icon text has been changed. (Deprecated)
`QEvent::InputMethod` | `83` | An input method is being used (QInputMethodEvent).
`QEvent::InputMethodQuery` | `207` | A input method query event (QInputMethodQueryEvent)
`QEvent::KeyboardLayoutChange` | `169` | The keyboard layout has changed.
`QEvent::KeyPress` | `6` | Key press (QKeyEvent).
`QEvent::KeyRelease` | `7` | Key release (QKeyEvent).
`QEvent::LanguageChange` | `89` | The application translation changed.
`QEvent::LayoutDirectionChange` | `90` | The direction of layouts changed.
`QEvent::LayoutRequest` | `76` | Widget layout needs to be redone.
`QEvent::Leave` | `11` | Mouse leaves widget's boundaries.
`QEvent::LeaveEditFocus` | `151` | An editor widget loses focus for editing. QT_KEYPAD_NAVIGATION must be defined.
`QEvent::LeaveWhatsThisMode` | `125` | Send to toplevel widgets when the application leaves "What's This?" mode.
`QEvent::LocaleChange` | `88` | The system locale has changed.
`QEvent::NonClientAreaMouseButtonDblClick` | `176` | A mouse double click occurred outside the client area (QMouseEvent).
`QEvent::NonClientAreaMouseButtonPress` | `174` | A mouse button press occurred outside the client area (QMouseEvent).
`QEvent::NonClientAreaMouseButtonRelease` | `175` | A mouse button release occurred outside the client area (QMouseEvent).
`QEvent::NonClientAreaMouseMove` | `173` | A mouse move occurred outside the client area (QMouseEvent).
`QEvent::MacSizeChange` | `177` | The user changed his widget sizes (macOS only).
`QEvent::MetaCall` | `43` | An asynchronous method invocation via QMetaObject::invokeMethod().
`QEvent::ModifiedChange` | `102` | Widgets modification state has been changed.
`QEvent::MouseButtonDblClick` | `4` | Mouse press again (QMouseEvent).
`QEvent::MouseButtonPress` | `2` | Mouse press (QMouseEvent).
`QEvent::MouseButtonRelease` | `3` | Mouse release (QMouseEvent).
`QEvent::MouseMove` | `5` | Mouse move (QMouseEvent).
`QEvent::MouseTrackingChange` | `109` | The mouse tracking state has changed.
`QEvent::Move` | `13` | Widget's position changed (QMoveEvent).
`QEvent::NativeGesture` | `197` | The system has detected a gesture (QNativeGestureEvent).
`QEvent::OrientationChange` | `208` | The screens orientation has changes (QScreenOrientationChangeEvent).
`QEvent::Paint` | `12` | Screen update necessary (QPaintEvent).
`QEvent::PaletteChange` | `39` | Palette of the widget changed.
`QEvent::ParentAboutToChange` | `131` | The object parent is about to change. Only sent to some object types, such as QWidget.
`QEvent::ParentChange` | `21` | The object parent has changed. Only sent to some object types, such as QWidget.
`QEvent::ParentWindowAboutToChange (since Qt 6.7)` | `225` | The parent window is about to change.
`QEvent::ParentWindowChange (since Qt 6.7)` | `226` | The parent window has changed.
`QEvent::PlatformPanel` | `212` | A platform specific panel has been requested.
`QEvent::PlatformSurface` | `217` | A native platform surface has been created or is about to be destroyed (QPlatformSurfaceEvent).
`QEvent::Polish` | `75` | The widget is polished.
`QEvent::PolishRequest` | `74` | The widget should be polished.
`QEvent::QueryWhatsThis` | `123` | The widget should accept the event if it has "What's This?" help (QHelpEvent).
`QEvent::Quit` | `20` | The application has exited.
`QEvent::ReadOnlyChange (since Qt 5.4)` | `106` | Widget's read-only state has changed.
`QEvent::RequestSoftwareInputPanel` | `199` | A widget wants to open a software input panel (SIP).
`QEvent::Resize` | `14` | Widget's size changed (QResizeEvent).
`QEvent::ScrollPrepare` | `204` | The object needs to fill in its geometry information (QScrollPrepareEvent).
`QEvent::Scroll` | `205` | The object needs to scroll to the supplied position (QScrollEvent).
`QEvent::Shortcut` | `117` | Key press in child for shortcut key handling (QShortcutEvent).
`QEvent::ShortcutOverride` | `51` | Key press in child, for overriding shortcut key handling (QKeyEvent). When a shortcut is about to trigger, `ShortcutOverride` is sent to the active window. This allows clients (e.g. widgets) to signal that they will handle the shortcut themselves, by accepting the event. If the shortcut override is accepted, the event is delivered as a normal key press to the focus widget. Otherwise, it triggers the shortcut action, if one exists.
`QEvent::Show` | `17` | Widget was shown on screen (QShowEvent).
`QEvent::ShowToParent` | `26` | A child widget has been shown.
`QEvent::SockAct` | `50` | Socket activated, used to implement QSocketNotifier.
`QEvent::StateMachineSignal` | `192` | A signal delivered to a state machine (QStateMachine::SignalEvent).
`QEvent::StateMachineWrapped` | `193` | The event is a wrapper for, i.e., contains, another event (QStateMachine::WrappedEvent).
`QEvent::StatusTip` | `112` | A status tip is requested (QStatusTipEvent).
`QEvent::StyleChange` | `100` | Widget's style has been changed.
`QEvent::TabletMove` | `87` | Wacom tablet move (QTabletEvent).
`QEvent::TabletPress` | `92` | Wacom tablet press (QTabletEvent).
`QEvent::TabletRelease` | `93` | Wacom tablet release (QTabletEvent).
`QEvent::TabletEnterProximity` | `171` | Wacom tablet enter proximity event (QTabletEvent), sent to QApplication.
`QEvent::TabletLeaveProximity` | `172` | Wacom tablet leave proximity event (QTabletEvent), sent to QApplication.
`QEvent::TabletTrackingChange (since Qt 5.9)` | `219` | The Wacom tablet tracking state has changed.
`QEvent::ThreadChange` | `22` | The object is moved to another thread. This is the last event sent to this object in the previous thread. See QObject::moveToThread().
`QEvent::Timer` | `1` | Regular timer events (QTimerEvent).
`QEvent::ToolBarChange` | `120` | The toolbar button is toggled on macOS.
`QEvent::ToolTip` | `110` | A tooltip was requested (QHelpEvent).
`QEvent::ToolTipChange` | `184` | The widget's tooltip has changed.
`QEvent::TouchBegin` | `194` | Beginning of a sequence of touch-screen or track-pad events (QTouchEvent).
`QEvent::TouchCancel` | `209` | Cancellation of touch-event sequence (QTouchEvent).
`QEvent::TouchEnd` | `196` | End of touch-event sequence (QTouchEvent).
`QEvent::TouchUpdate` | `195` | Touch-screen event (QTouchEvent).
`QEvent::UngrabKeyboard` | `189` | Item loses keyboard grab (QGraphicsItem only).
`QEvent::UngrabMouse` | `187` | Item loses mouse grab (QGraphicsItem, QQuickItem).
`QEvent::UpdateLater` | `78` | The widget should be queued to be repainted at a later time.
`QEvent::UpdateRequest` | `77` | The widget should be repainted.
`QEvent::WhatsThis` | `111` | The widget should reveal "What's This?" help (QHelpEvent).
`QEvent::WhatsThisClicked` | `118` | A link in a widget's "What's This?" help was clicked.
`QEvent::Wheel` | `31` | Mouse wheel rolled (QWheelEvent).
`QEvent::WinEventAct` | `132` | A Windows-specific activation event has occurred.
`QEvent::WindowActivate` | `24` | Window was activated.
`QEvent::WindowBlocked` | `103` | The window is blocked by a modal dialog.
`QEvent::WindowDeactivate` | `25` | Window was deactivated.
`QEvent::WindowIconChange` | `34` | The window's icon has changed.
`QEvent::WindowStateChange` | `105` | The window's state (minimized, maximized or full-screen) has changed (QWindowStateChangeEvent).
`QEvent::WindowTitleChange` | `33` | The window title has changed.
`QEvent::WindowUnblocked` | `104` | The window is unblocked after a modal dialog exited.
`QEvent::WinIdChange` | `203` | The window system identifier for this native widget has changed.
`QEvent::ZOrderChange` | `126` | The widget's z-order has changed. This event is never sent to top level windows.
`QEvent::SafeAreaMarginsChange (since Qt 6.9)` | `227` | The window's safe area margins have changed.

User events should have values between `User` and `MaxUser`:

Constant | Value | Description
--- | --- | ---
`QEvent::User` | `1000` | User-defined event.
`QEvent::MaxUser` | `65535` | Last user event ID.

For convenience, you can use the registerEventType() function to register and reserve a custom event type for your application. Doing so will allow you to avoid accidentally re-using a custom event type already in use elsewhere in your application.

## Property Documentation

### accepted : bool

This property holds the accept flag of the event object.

Setting the accept parameter indicates that the event receiver wants the event. Unwanted events might be propagated to the parent widget. By default, isAccepted() is set to true, but don't rely on this as subclasses may choose to clear it in their constructor.

For convenience, the accept flag can also be set with accept(), and cleared with ignore().

Note: Accepting a QPointerEvent implicitly accepts all the points that the event carries.

Access functions:

bool | isAccepted() const
virtual void | setAccepted(bool accepted)

## Member Function Documentation

### `[explicit]` QEvent::QEvent(QEvent::Type type)

Constructs an event object of type type.

### `[virtual noexcept]` QEvent::~QEvent()

Destroys the event. If it was posted, it will be removed from the list of events to be posted.

### void QEvent::accept()

Sets the accept flag of the event object, the equivalent of calling setAccepted(true).

Setting the accept parameter indicates that the event receiver wants the event. Unwanted events might be propagated to the parent widget.

See also ignore().

### `[virtual, since 6.0]` QEvent *QEvent::clone() const

Creates and returns an identical copy of this event.

This function was introduced in Qt 6.0.

### void QEvent::ignore()

Clears the accept flag parameter of the event object, the equivalent of calling setAccepted(false).

Clearing the accept parameter indicates that the event receiver does not want the event. Unwanted events might be propagated to the parent widget.

See also accept().

### `[noexcept, since 6.0]` bool QEvent::isInputEvent() const

Returns `true` if the event object is a QInputEvent or one of its subclasses.

This function was introduced in Qt 6.0.

### `[noexcept, since 6.0]` bool QEvent::isPointerEvent() const

Returns `true` if the event object is a QPointerEvent or one of its subclasses.

This function was introduced in Qt 6.0.

### `[noexcept, since 6.0]` bool QEvent::isSinglePointEvent() const

Returns `true` if the event object is a subclass of QSinglePointEvent.

This function was introduced in Qt 6.0.

### `[static noexcept]` int QEvent::registerEventType(int hint = -1)

Registers and returns a custom event type. The hint provided will be used if it is available, otherwise it will return a value between QEvent::User and QEvent::MaxUser that has not yet been registered. The hint is ignored if its value is not between QEvent::User and QEvent::MaxUser.

Returns -1 if all available values are already taken or the program is shutting down.

Note: This function is thread-safe.

### bool QEvent::spontaneous() const

Returns `true` if the event originated outside the application (a system event); otherwise returns `false`.

### QEvent::Type QEvent::type() const

Returns the event type.