Sur cette page

QEvent Class

La classe QEvent est la classe de base de toutes les classes d'événements. Les objets événements contiennent les paramètres de l'événement. Plus d'informations...

Types publics

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

Propriétés

Fonctions publiques

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

Membres publics statiques

int registerEventType(int hint = -1)

Description détaillée

La boucle d'événements principale de Qt (QCoreApplication::exec()) récupère les événements natifs du système de fenêtres dans la file d'événements, les traduit en QEvents et envoie les événements traduits à QObjects.

En général, les événements proviennent du système de fenêtres sous-jacent (spontaneous() renvoie true), mais il est également possible d'envoyer manuellement des événements en utilisant QCoreApplication::sendEvent() et QCoreApplication::postEvent() (spontaneous() renvoie false).

QObjects Les systèmes d'information peuvent recevoir des événements en faisant appel à leur fonction QObject::event(). Cette fonction peut être réimplémentée dans les sous-classes afin de personnaliser la gestion des événements et d'ajouter des types d'événements supplémentaires ; QWidget::event() en est un exemple notable. Par défaut, les événements sont envoyés à des gestionnaires d'événements tels que QObject::timerEvent() et QWidget::mouseMoveEvent(). QObject::installEventFilter() permet à un objet d'intercepter des événements destinés à un autre objet.

Le QEvent de base ne contient qu'un paramètre de type d'événement et un drapeau "accept". L'indicateur d'acceptation est activé avec accept(), et désactivé avec ignore(). Il est activé par défaut, mais il ne faut pas s'y fier car les sous-classes peuvent choisir de l'effacer dans leur constructeur.

Les sous-classes de QEvent contiennent des paramètres supplémentaires qui décrivent l'événement en question.

Voir aussi QObject::event(), QObject::installEventFilter(), QCoreApplication::sendEvent(), QCoreApplication::postEvent() et QCoreApplication::processEvents().

Documentation sur les types de membres

enum QEvent::Type

Ce type d'énumération définit les types d'événements valables dans Qt. Les types d'événements et les classes spécialisées pour chaque type sont les suivants :

ConstanteValeurDescription de l'événement
QEvent::None0Pas un événement.
QEvent::ActionAdded114Une nouvelle action a été ajoutée (QActionEvent).
QEvent::ActionChanged113Une action a été modifiée (QActionEvent).
QEvent::ActionRemoved115Une action a été supprimée (QActionEvent).
QEvent::ActivationChange99L'état d'activation de la fenêtre de premier niveau d'un widget a changé.
QEvent::ApplicationActivate121Cette énumération est obsolète. Utilisez ApplicationStateChange à la place.
QEvent::ApplicationActivatedApplicationActivateCette énumération est obsolète. Utilisez ApplicationStateChange à la place.
QEvent::ApplicationDeactivate122Cette énumération est obsolète. Utilisez ApplicationStateChange à la place.
QEvent::ApplicationFontChange36La police par défaut de l'application a changé.
QEvent::ApplicationLayoutDirectionChange37La direction de la mise en page par défaut de l'application a changé.
QEvent::ApplicationPaletteChange38La palette par défaut de l'application a changé.
QEvent::ApplicationStateChange214L'état de l'application a changé.
QEvent::ApplicationWindowIconChange35L'icône de l'application a changé.
QEvent::ChildAdded68Un objet a un enfant (QChildEvent).
QEvent::ChildPolished69Un enfant de widget est poli (QChildEvent).
QEvent::ChildRemoved71Un objet perd un enfant (QChildEvent).
QEvent::ChildWindowAdded (since Qt 6.7)223Une fenêtre enfant a été ajoutée à la fenêtre.
QEvent::ChildWindowRemoved (since Qt 6.7)224Une fenêtre enfant a été supprimée de la fenêtre.
QEvent::Clipboard40Le contenu du presse-papiers a changé.
QEvent::Close19Un widget a été fermé (QCloseEvent).
QEvent::CloseSoftwareInputPanel200Un widget veut fermer le panneau d'entrée logiciel (SIP).
QEvent::ContentsRectChange178Les marges du contenu du widget ont été modifiées.
QEvent::ContextMenu82Menu contextuel (QContextMenuEvent).
QEvent::CursorChange183Le curseur du widget a changé.
QEvent::DeferredDelete52L'objet sera supprimé après avoir été nettoyé (QDeferredDeleteEvent).
QEvent::DevicePixelRatioChange (since Qt 6.6)222Le devicePixelRatio a changé pour le backing store sous-jacent de ce widget ou de cette fenêtre.
QEvent::DragEnter60Le curseur entre dans un widget lors d'une opération de glisser-déposer (QDragEnterEvent).
QEvent::DragLeave62Le curseur quitte un widget pendant une opération de glisser-déposer (QDragLeaveEvent).
QEvent::DragMove61Une opération de glisser-déposer est en cours (QDragMoveEvent).
QEvent::Drop63Une opération de glisser-déposer est terminée (QDropEvent).
QEvent::DynamicPropertyChange170Une propriété dynamique a été ajoutée, modifiée ou supprimée de l'objet.
QEvent::EnabledChange98L'état activé du widget a changé.
QEvent::Enter10La souris entre dans les limites du widget (QEnterEvent).
QEvent::EnterEditFocus150Un widget d'éditeur obtient le focus pour l'édition. QT_KEYPAD_NAVIGATION doit être défini.
QEvent::EnterWhatsThisMode124Envoyé aux widgets de niveau supérieur lorsque l'application passe en mode "Qu'est-ce que c'est ?
QEvent::Expose206Envoyé à une fenêtre lorsque son contenu à l'écran est invalidé et doit être supprimé de la mémoire de sauvegarde.
QEvent::FileOpen116Demande d'ouverture de fichier (QFileOpenEvent).
QEvent::FocusIn8Le widget ou la fenêtre gagne le focus du clavier (QFocusEvent).
QEvent::FocusOut9Le widget ou la fenêtre perd le focus du clavier (QFocusEvent).
QEvent::FocusAboutToChange23Le focus du widget ou de la fenêtre est sur le point de changer (QFocusEvent)
QEvent::FontChange97La police de caractères du widget a changé.
QEvent::Gesture198Un geste a été déclenché (QGestureEvent).
QEvent::GestureOverride202Une annulation de geste a été déclenchée (QGestureEvent).
QEvent::GrabKeyboard188L'élément est saisi au clavier (QGraphicsItem uniquement).
QEvent::GrabMouse186L'élément est saisi par la souris (QGraphicsItem uniquement).
QEvent::GraphicsSceneContextMenu159Menu contextuel sur une scène graphique (QGraphicsSceneContextMenuEvent).
QEvent::GraphicsSceneDragEnter164Le curseur entre dans une scène graphique pendant une opération de glisser-déposer (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneDragLeave166Le curseur quitte une scène graphique pendant une opération de glisser-déposer (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneDragMove165Une opération de glisser-déposer est en cours sur une scène (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneDrop167Une opération de glisser-déposer est terminée sur une scène (QGraphicsSceneDragDropEvent).
QEvent::GraphicsSceneHelp163L'utilisateur demande de l'aide pour une scène graphique (QHelpEvent).
QEvent::GraphicsSceneHoverEnter160Le curseur de la souris entre dans un élément survolé d'une scène graphique (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneHoverLeave162Le curseur de la souris quitte un élément survolé dans une scène graphique (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneHoverMove161Le curseur de la souris se déplace à l'intérieur d'un élément survolé dans une scène graphique (QGraphicsSceneHoverEvent).
QEvent::GraphicsSceneMouseDoubleClick158Appuyer à nouveau sur la souris (double clic) dans une scène graphique (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMouseMove155Déplacer la souris dans une scène graphique (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMousePress156Appuyer sur la souris dans une scène graphique (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMouseRelease157Relâcher la souris dans une scène graphique (QGraphicsSceneMouseEvent).
QEvent::GraphicsSceneMove182Le widget a été déplacé (QGraphicsSceneMoveEvent).
QEvent::GraphicsSceneResize181Le widget a été redimensionné (QGraphicsSceneResizeEvent).
QEvent::GraphicsSceneWheel168La roue de la souris a roulé dans une scène graphique (QGraphicsSceneWheelEvent).
QEvent::GraphicsSceneLeave220Le curseur quitte une scène graphique (QGraphicsSceneWheelEvent).
QEvent::Hide18Le widget a été caché (QHideEvent).
QEvent::HideToParent27Un widget enfant a été caché.
QEvent::HoverEnter127Le curseur de la souris entre dans un widget de survol (QHoverEvent).
QEvent::HoverLeave128Le curseur de la souris quitte un widget de survol (QHoverEvent).
QEvent::HoverMove129Le curseur de la souris se déplace à l'intérieur d'un widget de survol (QHoverEvent).
QEvent::IconDrag96L'icône principale d'une fenêtre a été déplacée (QIconDragEvent).
QEvent::IconTextChange101Le texte de l'icône du widget a été modifié. (Obsolète)
QEvent::InputMethod83Une méthode d'entrée est utilisée (QInputMethodEvent).
QEvent::InputMethodQuery207Un événement de requête de méthode d'entrée (QInputMethodQueryEvent)
QEvent::KeyboardLayoutChange169La disposition du clavier a changé.
QEvent::KeyPress6Appui sur une touche (QKeyEvent).
QEvent::KeyRelease7Relâchement d'une touche (QKeyEvent).
QEvent::LanguageChange89La traduction de l'application a changé.
QEvent::LayoutDirectionChange90La direction des dispositions a changé.
QEvent::LayoutRequest76La disposition des widgets doit être refaite.
QEvent::Leave11La souris sort des limites du widget.
QEvent::LeaveEditFocus151Un widget éditeur perd le focus pour l'édition. QT_KEYPAD_NAVIGATION doit être défini.
QEvent::LeaveWhatsThisMode125Envoi aux widgets de niveau supérieur lorsque l'application quitte le mode "Qu'est-ce que c'est ?
QEvent::LocaleChange88La locale du système a changé.
QEvent::NonClientAreaMouseButtonDblClick176Un double clic de souris s'est produit en dehors de la zone client (QMouseEvent).
QEvent::NonClientAreaMouseButtonPress174Une pression sur un bouton de la souris s'est produite en dehors de la zone client (QMouseEvent).
QEvent::NonClientAreaMouseButtonRelease175Un bouton de la souris a été relâché en dehors de la zone client (QMouseEvent).
QEvent::NonClientAreaMouseMove173Un déplacement de la souris s'est produit en dehors de la zone du client (QMouseEvent).
QEvent::MacSizeChange177L'utilisateur a modifié la taille de ses widgets (macOS uniquement).
QEvent::MetaCall43Invocation d'une méthode asynchrone via QMetaObject::invokeMethod().
QEvent::ModifiedChange102L'état de modification des widgets a été modifié.
QEvent::MouseButtonDblClick4Nouvelle pression de la souris (QMouseEvent).
QEvent::MouseButtonPress2Appui de la souris (QMouseEvent).
QEvent::MouseButtonRelease3Relâchement de la souris (QMouseEvent).
QEvent::MouseMove5Déplacement de la souris (QMouseEvent).
QEvent::MouseTrackingChange109L'état de suivi de la souris a changé.
QEvent::Move13La position du widget a changé (QMoveEvent).
QEvent::NativeGesture197Le système a détecté un geste (QNativeGestureEvent).
QEvent::OrientationChange208L'orientation de l'écran a changé (QScreenOrientationChangeEvent).
QEvent::Paint12Une mise à jour de l'écran est nécessaire (QPaintEvent).
QEvent::PaletteChange39La palette du widget a changé.
QEvent::ParentAboutToChange131Le parent de l'objet est sur le point de changer. Uniquement envoyé à certains types d'objets, tels que QWidget.
QEvent::ParentChange21Le parent de l'objet a changé. Envoyé uniquement à certains types d'objets, tels que QWidget.
QEvent::ParentWindowAboutToChange (since Qt 6.7)225La fenêtre parent est sur le point de changer.
QEvent::ParentWindowChange (since Qt 6.7)226La fenêtre parent a changé.
QEvent::PlatformPanel212Un panneau spécifique à la plate-forme a été demandé.
QEvent::PlatformSurface217Une surface de plate-forme native a été créée ou est sur le point d'être détruite (QPlatformSurfaceEvent).
QEvent::Polish75Le widget est poli.
QEvent::PolishRequest74Le widget devrait être poli.
QEvent::QueryWhatsThis123Le widget doit accepter l'événement s'il dispose de l'aide "What's This ?" (QHelpEvent).
QEvent::Quit20L'application s'est arrêtée.
QEvent::ReadOnlyChange (since Qt 5.4)106L'état de lecture seule du widget a changé.
QEvent::RequestSoftwareInputPanel199Un widget veut ouvrir un panneau d'entrée logiciel (SIP).
QEvent::Resize14La taille du widget a changé (QResizeEvent).
QEvent::ScrollPrepare204L'objet doit remplir ses informations géométriques (QScrollPrepareEvent).
QEvent::Scroll205L'objet doit défiler jusqu'à la position fournie (QScrollEvent).
QEvent::Shortcut117Appui sur une touche dans l'enfant pour la gestion des raccourcis clavier (QShortcutEvent).
QEvent::ShortcutOverride51Appui sur une touche dans l'enfant, pour remplacer la gestion des touches de raccourci (QKeyEvent). Lorsqu'un raccourci est sur le point de se déclencher, ShortcutOverride est envoyé à la fenêtre active. Cela permet aux clients (par exemple les widgets) de signaler qu'ils géreront eux-mêmes le raccourci en acceptant l'événement. Si l'annulation du raccourci est acceptée, l'événement est transmis comme une pression normale sur une touche au widget actif. Sinon, il déclenche l'action de raccourci, si elle existe.
QEvent::Show17Le widget a été affiché à l'écran (QShowEvent).
QEvent::ShowToParent26Un widget enfant a été affiché.
QEvent::SockAct50Socket activé, utilisé pour implémenter QSocketNotifier.
QEvent::StateMachineSignal192Un signal délivré à une machine d'état (QStateMachine::SignalEvent).
QEvent::StateMachineWrapped193L'événement est une enveloppe, c'est-à-dire qu'il contient un autre événement (QStateMachine::WrappedEvent).
QEvent::StatusTip112Une indication d'état est demandée (QStatusTipEvent).
QEvent::StyleChange100Le style du widget a été modifié.
QEvent::TabletMove87Déplacement de la tablette Wacom (QTabletEvent).
QEvent::TabletPress92Appui sur la tablette Wacom (QTabletEvent).
QEvent::TabletRelease93Libération de la tablette Wacom (QTabletEvent).
QEvent::TabletEnterProximity171La tablette Wacom entre dans l'événement de proximité (QTabletEvent), envoyé à QApplication.
QEvent::TabletLeaveProximity172La tablette Wacom quitte l'événement de proximité (QTabletEvent), envoyé à QApplication.
QEvent::TabletTrackingChange (since Qt 5.9)219L'état de suivi de la tablette Wacom a changé.
QEvent::ThreadChange22L'objet est déplacé vers un autre thread. Il s'agit du dernier événement envoyé à cet objet dans le fil de discussion précédent. Voir QObject::moveToThread().
QEvent::Timer1Événements réguliers de la minuterie (QTimerEvent).
QEvent::ToolBarChange120Le bouton de la barre d'outils est basculé sur macOS.
QEvent::ToolTip110Une infobulle a été demandée (QHelpEvent).
QEvent::ToolTipChange184L'info-bulle du widget a changé.
QEvent::TouchBegin194Début d'une séquence d'événements liés à l'écran tactile ou au trackpad (QTouchEvent).
QEvent::TouchCancel209Annulation d'une séquence d'événements tactiles (QTouchEvent).
QEvent::TouchEnd196Fin d'une séquence d'événements tactiles (QTouchEvent).
QEvent::TouchUpdate195Événement de l'écran tactile (QTouchEvent).
QEvent::UngrabKeyboard189L'élément perd la saisie au clavier (QGraphicsItem uniquement).
QEvent::UngrabMouse187L'élément perd la prise de la souris (QGraphicsItem, QQuickItem).
QEvent::UpdateLater78Le widget doit être mis en file d'attente pour être repeint ultérieurement.
QEvent::UpdateRequest77Le widget devrait être repeint.
QEvent::WhatsThis111Le widget devrait afficher l'aide "Qu'est-ce que c'est ?" (QHelpEvent).
QEvent::WhatsThisClicked118Un lien dans l'aide "Qu'est-ce que c'est ?" d'un widget a été cliqué.
QEvent::Wheel31La roue de la souris a roulé (QWheelEvent).
QEvent::WinEventAct132Un événement d'activation spécifique à Windows s'est produit.
QEvent::WindowActivate24La fenêtre a été activée.
QEvent::WindowBlocked103La fenêtre est bloquée par une boîte de dialogue modale.
QEvent::WindowDeactivate25La fenêtre a été désactivée.
QEvent::WindowIconChange34L'icône de la fenêtre a changé.
QEvent::WindowStateChange105Le site window's state (minimisé, maximisé ou plein écran) a changé (QWindowStateChangeEvent).
QEvent::WindowTitleChange33Le titre de la fenêtre a changé.
QEvent::WindowUnblocked104La fenêtre est débloquée après la sortie d'une boîte de dialogue modale.
QEvent::WinIdChange203L'identifiant du système de fenêtres pour ce widget natif a changé.
QEvent::ZOrderChange126L'ordre z du widget a changé. Cet événement n'est jamais envoyé aux fenêtres de niveau supérieur.
QEvent::SafeAreaMarginsChange (since Qt 6.9)227Les marges de la zone de sécurité de la fenêtre ont changé.

Les événements utilisateur doivent avoir des valeurs comprises entre User et MaxUser:

ConstanteValeurDescription de l'événement
QEvent::User1000Événement défini par l'utilisateur.
QEvent::MaxUser65535ID du dernier événement utilisateur.

Pour plus de commodité, vous pouvez utiliser la fonction registerEventType() pour enregistrer et réserver un type d'événement personnalisé pour votre application. Vous éviterez ainsi de réutiliser accidentellement un type d'événement personnalisé déjà utilisé ailleurs dans votre application.

Documentation sur les propriétés

accepted : bool

Cette propriété contient l'indicateur d'acceptation de l'objet événement.

La définition du paramètre d'acceptation indique que le récepteur de l'événement veut l'événement. Les événements non désirés peuvent être propagés au widget parent. Par défaut, isAccepted() vaut true, mais il ne faut pas s'y fier car les sous-classes peuvent choisir de l'effacer dans leur constructeur.

Pour plus de commodité, le drapeau d'acceptation peut également être activé avec accept(), et désactivé avec ignore().

Remarque : l'acceptation d'un QPointerEvent implique implicitement accepts tous les points que l'événement porte.

Fonctions d'accès :

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

Documentation des fonctions membres

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

Construit un objet événement de type type.

[virtual noexcept] QEvent::~QEvent()

Détruit l'événement. S'il s'agit de posted, il sera supprimé de la liste des événements à publier.

void QEvent::accept()

Définit l'indicateur d'acceptation de l'objet événement, ce qui équivaut à appeler setAccepted(true).

La définition du paramètre d'acceptation indique que le récepteur de l'événement veut l'événement. Les événements non désirés peuvent être propagés au widget parent.

Voir aussi ignore().

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

Crée et renvoie une copie identique de cet événement.

Cette fonction a été introduite dans Qt 6.0.

void QEvent::ignore()

Efface le paramètre d'acceptation de l'objet événement, ce qui équivaut à appeler setAccepted(false).

L'effacement du paramètre accept indique que le récepteur de l'événement ne veut pas de l'événement. Les événements non désirés peuvent être propagés au widget parent.

Voir aussi accept().

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

Renvoie true si l'objet de l'événement est un QInputEvent ou l'une de ses sous-classes.

Cette fonction a été introduite dans Qt 6.0.

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

Renvoie true si l'objet de l'événement est un QPointerEvent ou l'une de ses sous-classes.

Cette fonction a été introduite dans Qt 6.0.

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

Renvoie true si l'objet événement est une sous-classe de QSinglePointEvent.

Cette fonction a été introduite dans Qt 6.0.

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

Enregistre et renvoie un type d'événement personnalisé. L'adresse hint fournie sera utilisée si elle est disponible, sinon elle renverra une valeur comprise entre QEvent::User et QEvent::MaxUser qui n'a pas encore été enregistrée. L'adresse hint est ignorée si sa valeur n'est pas comprise entre QEvent::User et QEvent::MaxUser.

Retourne -1 si toutes les valeurs disponibles sont déjà prises ou si le programme s'arrête.

Remarque : cette fonction est à l'abri des threads.

bool QEvent::spontaneous() const

Renvoie true si l'événement provient de l'extérieur de l'application (un événement système) ; sinon, renvoie false.

QEvent::Type QEvent::type() const

Renvoie le type d'événement.

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