Sur cette page

QEventLoopLocker Class

La classe QEventLoopLocker permet de quitter une boucle d'événements lorsqu'elle n'est plus nécessaire. Plus d'informations...

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

Le QEventLoopLocker opère sur des objets particuliers - soit une instance QCoreApplication, une instance QEventLoop ou une instance QThread.

Cela permet, par exemple, d'exécuter un lot de travaux avec une boucle d'événements et de quitter cette boucle d'événements une fois le dernier travail terminé. Pour ce faire, un QEventLoopLocker est conservé avec chaque instance de travail.

La variante qui opère sur QCoreApplication permet de terminer les tâches exécutées de manière asynchrone après la fermeture de la dernière fenêtre de l'interface utilisateur. Cela peut être utile, par exemple, pour exécuter un travail 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 casier d'événements fonctionnant sur le site QCoreApplication.

L'application tentera de quitter lorsqu'il n'y aura plus de QEventLoopLocker opérant sur elle, tant que QCoreApplication::isQuitLockEnabled() est true.

Notez que la tentative d'abandon n'aboutira pas nécessairement à l'abandon 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 casier d'événements fonctionnant sur le site loop.

Ce QEventLoop particulier s'arrêtera lorsqu'il n'y aura plus de QEventLoopLockers fonctionnant sur lui.

Voir aussi QEventLoop::quit().

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

Crée un casier d'événements fonctionnant sur le site thread.

Ce QThread particulier s'arrêtera lorsqu'il n'y aura plus de QEventLoopLockers fonctionnant sur lui.

Voir aussi QThread::quit().

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

Move-construit un casier à boucle d'événements à partir de other. other aura un destructeur no-op, tandis que la responsabilité d'empêcher le QEventLoop/QThread/QCoreApplication de quitter est transférée au nouvel objet.

Cette fonction a été introduite dans Qt 6.7.

[noexcept] QEventLoopLocker::~QEventLoopLocker()

Détruit l'objet casier de la boucle d'événements

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

Échange l'objet et l'état de ce QEventLoopLocker avec other. Cette opération est très rapide et n'échoue jamais.

Cette fonction a été introduite dans Qt 6.7.

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

Move-assigns this event-loop locker from other. other aura un destructeur no-op, tandis que la responsabilité d'empêcher les QEventLoop/QThread/QCoreApplication de quitter est transférée à cet objet.

Cette fonction a été introduite dans Qt 6.7.

Non-membres apparentés

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

Échange l'objet et l'état de lhs avec rhs. Cette opération est très rapide et n'échoue jamais.

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.