Sur cette page

QEventLoopLocker Class

La classe `QEventLoopLocker` permet de fermer une boucle d'événements lorsqu'elle n'est plus nécessaire. En savoir plus...

En-tête : #include <QEventLoopLocker>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Fonctions publiques

QEventLoopLocker()
QEventLoopLocker(QEventLoop *loop)
QEventLoopLocker(QThread *thread)
(since 6.7) QEventLoopLocker(QEventLoopLocker &&other)
~QEventLoopLocker()
(since 6.7) void swap(QEventLoopLocker &other)
(since 6.7) QEventLoopLocker &operator=(QEventLoopLocker &&other)
(since 6.7) void swap(QEventLoopLocker &lhs, QEventLoopLocker &rhs)

Description détaillée

QEventLoopLocker agit sur des objets spécifiques : soit une instance de ` QCoreApplication `, soit une instance de ` QEventLoop `, soit une instance de ` QThread `.

Cela permet, par exemple, d’exécuter un lot de tâches avec une boucle d’événements et de quitter cette boucle une fois la dernière tâche terminée. Pour ce faire, on associe un QEventLoopLocker à chaque instance de tâche.

La variante qui opère sur QCoreApplication permet de terminer l'exécution asynchrone des tâches après la fermeture de la dernière fenêtre de l'interface graphique. Cela peut s'avérer utile, par exemple, pour exécuter une tâche qui télécharge des données sur un réseau.

Voir également QEventLoop et QCoreApplication.

Documentation sur les fonctions membres

[noexcept] QEventLoopLocker::QEventLoopLocker()

Crée un « event locker » fonctionnant sur le ` QCoreApplication`.

L’application tentera de se fermer lorsqu’il n’y aura plus aucun QEventLoopLocker fonctionnant sur elle, à condition que la fonction QCoreApplication::isQuitLockEnabled() soit définie sur true.

Notez qu’une tentative de fermeture n’entraîne pas nécessairement la fermeture de l’application, s’il y a par exemple des fenêtres ouvertes ou si l’événement ` QEvent::Quit ` est ignoré.

Voir également QCoreApplication::quit() et QCoreApplication::isQuitLockEnabled().

[explicit noexcept] QEventLoopLocker::QEventLoopLocker(QEventLoop *loop)

Crée un « event locker » fonctionnant sur l'loop.

Cette instance d'QEventLoop s'arrêtera lorsqu'il n'y aura plus aucun QEventLoopLocker fonctionnant sur elle.

Voir également QEventLoop::quit().

[explicit noexcept] QEventLoopLocker::QEventLoopLocker(QThread *thread)

Crée un « event locker » fonctionnant sur l'thread.

Cette instance d'QThread se fermera lorsqu'il n'y aura plus aucun QEventLoopLocker fonctionnant sur elle.

Voir également QThread::quit().

[noexcept, since 6.7] QEventLoopLocker::QEventLoopLocker(QEventLoopLocker &&other)

Crée un « event-loop locker » à partir de other. other disposera d’un destructeur sans effet, tandis que la responsabilité d’empêcher les objets QEventLoop/QThread/QCoreApplication de se fermer sera transférée au nouvel objet.

Cette fonction a été introduite dans Qt 6.7.

[noexcept] QEventLoopLocker::~QEventLoopLocker()

Supprime cet objet de verrouillage de la boucle d'événements

[noexcept, since 6.7] void QEventLoopLocker::swap(QEventLoopLocker &other)

Permute l'objet et l'état de cette QEventLoopLocker avec other. Cette opération est très rapide et ne rencontre jamais d'échec.

Cette fonction a été introduite dans Qt 6.7.

[noexcept, since 6.7] QEventLoopLocker &QEventLoopLocker::operator=(QEventLoopLocker &&other)

Déplace et attribue ce verrou de boucle d'événements depuis other. other disposera d'un destructeur sans effet, tandis que la responsabilité d'empêcher la fermeture de QEventLoop/QThread/QCoreApplication est transférée à cet objet.

Cette fonction a été introduite dans Qt 6.7.

Éléments non membres associés

[noexcept, since 6.7] void swap(QEventLoopLocker &lhs, QEventLoopLocker &rhs)

Permute l'objet et l'état de ` lhs ` avec ` rhs`. Cette opération est très rapide et ne rencontre jamais d'échec.

Cette fonction a été introduite dans Qt 6.7.

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