QEventLoopLocker Class
Die Klasse „QEventLoopLocker“ bietet eine Möglichkeit, eine Ereignisschleife zu beenden, wenn sie nicht mehr benötigt wird. Mehr...
| Header: | #include <QEventLoopLocker> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Öffentliche Funktionen
| 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) |
Zugehörige Nicht-Mitglieder
(since 6.7) void | swap(QEventLoopLocker &lhs, QEventLoopLocker &rhs) |
Ausführliche Beschreibung
Der QEventLoopLocker wirkt auf bestimmte Objekte ein – entweder auf eine Instanz von ` QCoreApplication `, eine Instanz von ` QEventLoop ` oder eine Instanz von ` QThread `.
Dies ermöglicht es beispielsweise, eine Reihe von Jobs mit einer Ereignisschleife auszuführen und diese Ereignisschleife zu beenden, sobald der letzte Job abgeschlossen ist. Dies wird erreicht, indem für jede Job-Instanz ein `QEventLoopLocker` verwaltet wird.
Die Variante, die mit „ QCoreApplication “ arbeitet, ermöglicht es, asynchron ausgeführte Jobs nach dem Schließen des letzten GUI-Fensters zu beenden. Dies kann beispielsweise nützlich sein, um einen Job auszuführen, der Daten in ein Netzwerk hochlädt.
Siehe auch „ QEventLoop “ und „ QCoreApplication “.
Dokumentation der Member-Funktionen
[noexcept] QEventLoopLocker::QEventLoopLocker()
Erstellt einen Event-Locker, der auf dem ` QCoreApplication` arbeitet.
Die Anwendung versucht, sich zu beenden, wenn keine QEventLoopLockers mehr auf ihr aktiv sind, sofern QCoreApplication::isQuitLockEnabled() den Wert „ true “ hat.
Beachten Sie, dass der Versuch, die Anwendung zu beenden, nicht unbedingt dazu führt, dass die Anwendung tatsächlich beendet wird, wenn beispielsweise Fenster geöffnet sind oder das Ereignis „ QEvent::Quit “ ignoriert wird.
Siehe auch QCoreApplication::quit() und QCoreApplication::isQuitLockEnabled().
[explicit noexcept] QEventLoopLocker::QEventLoopLocker(QEventLoop *loop)
Erstellt einen Event-Locker, der auf dem „ loop “ arbeitet.
Dieser spezielle „ QEventLoop “ wird beendet, sobald keine „QEventLoopLockers“ mehr darauf ausgeführt werden.
Siehe auch QEventLoop::quit().
[explicit noexcept] QEventLoopLocker::QEventLoopLocker(QThread *thread)
Erstellt einen Event-Locker, der auf dem „ thread “ arbeitet.
Dieser spezielle „ QThread “ wird beendet, sobald keine „QEventLoopLockers“ mehr auf ihm aktiv sind.
Siehe auch ` QThread::quit()`.
[noexcept, since 6.7] QEventLoopLocker::QEventLoopLocker(QEventLoopLocker &&other)
Erstellt einen Event-Loop-Locker aus other. other verfügt über einen No-Op-Destruktor, während die Verantwortung dafür, dass QEventLoop/QThread/QCoreApplication nicht beendet werden, auf das neue Objekt übertragen wird.
Diese Funktion wurde in Qt 6.7 eingeführt.
[noexcept] QEventLoopLocker::~QEventLoopLocker()
Löscht dieses Event-Loop-Locker-Objekt
[noexcept, since 6.7] void QEventLoopLocker::swap(QEventLoopLocker &other)
Tauscht das Objekt und den Zustand dieses QEventLoopLocker mit other aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
Diese Funktion wurde in Qt 6.7 eingeführt.
[noexcept, since 6.7] QEventLoopLocker &QEventLoopLocker::operator=(QEventLoopLocker &&other)
Weist diesen Event-Loop-Locker aus „ other “ zu. „ other “ verfügt über einen No-Op-Destruktor, während die Verantwortung dafür, das Beenden von „ QEventLoop “, „QThread “ und „QCoreApplication “ zu verhindern, auf dieses Objekt übertragen wird.
Diese Funktion wurde in Qt 6.7 eingeführt.
Verwandte Nicht-Mitglieder
[noexcept, since 6.7] void swap(QEventLoopLocker &lhs, QEventLoopLocker &rhs)
Tauscht das Objekt und den Zustand von lhs mit rhs aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
Diese Funktion wurde in Qt 6.7 eingeführt.
© 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.