QEventLoopLocker Class
Die Klasse QEventLoopLocker bietet eine Möglichkeit, eine Ereignisschleife zu beenden, wenn sie nicht mehr benötigt wird. Mehr...
Kopfzeile: | #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) |
Verwandte Nicht-Mitglieder
(since 6.7) void | swap(QEventLoopLocker &lhs, QEventLoopLocker &rhs) |
Detaillierte Beschreibung
Der QEventLoopLocker arbeitet auf bestimmten Objekten - entweder einer QCoreApplication Instanz, einer QEventLoop Instanz oder einer QThread Instanz.
Damit ist es zum Beispiel möglich, einen Stapel von Aufträgen mit einer Ereignisschleife laufen zu lassen und diese Ereignisschleife nach Beendigung des letzten Auftrags zu verlassen. Dies wird erreicht, indem ein QEventLoopLocker mit jeder Jobinstanz geführt wird.
Die Variante, die auf QCoreApplication arbeitet, ermöglicht es, asynchron laufende Jobs zu beenden, nachdem das letzte GUI-Fenster geschlossen wurde. Dies kann z.B. nützlich sein, um einen Job auszuführen, der Daten in ein Netzwerk hochlädt.
Siehe auch QEventLoop und QCoreApplication.
Dokumentation der Mitgliedsfunktionen
[noexcept]
QEventLoopLocker::QEventLoopLocker()
Erzeugt einen Event Locker, der auf QCoreApplication arbeitet.
Die Anwendung versucht zu beenden, wenn es keine weiteren QEventLoopLockers mehr gibt, die auf sie wirken, solange QCoreApplication::isQuitLockEnabled() true
ist.
Beachten Sie, dass ein Beendigungsversuch nicht unbedingt zum Beenden der Anwendung führt, wenn beispielsweise noch Fenster geöffnet sind oder das Ereignis QEvent::Quit ignoriert wird.
Siehe auch QCoreApplication::quit() und QCoreApplication::isQuitLockEnabled().
[explicit noexcept]
QEventLoopLocker::QEventLoopLocker(QEventLoop *loop)
Erzeugt einen Event Locker, der auf loop arbeitet.
Diese spezielle QEventLoop wird beendet, wenn es keine weiteren QEventLoopLockers gibt, die auf sie wirken.
Siehe auch QEventLoop::quit().
[explicit noexcept]
QEventLoopLocker::QEventLoopLocker(QThread *thread)
Erzeugt einen Event Locker, der auf thread arbeitet.
Diese spezielle QThread wird beendet, wenn es keine weiteren QEventLoopLockers gibt, die auf sie wirken.
Siehe auch QThread::quit().
[noexcept, since 6.7]
QEventLoopLocker::QEventLoopLocker(QEventLoopLocker &&other)
Move-constructs a event-loop locker from other. other wird einen no-op destructor haben, während die Verantwortung für das Verhindern des Beendens von QEventLoop/QThread/QCoreApplication auf das neue Objekt übertragen wird.
Diese Funktion wurde in Qt 6.7 eingeführt.
[noexcept]
QEventLoopLocker::~QEventLoopLocker()
Zerstört dieses Ereignisschleifen-Schließfachobjekt
[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 nie fehl.
Diese Funktion wurde in Qt 6.7 eingeführt.
[noexcept, since 6.7]
QEventLoopLocker &QEventLoopLocker::operator=(QEventLoopLocker &&other)
Move-assigns this event-loop locker from other. other wird einen no-op Destruktor haben, während die Verantwortung für das Verhindern des Beendens von QEventLoop/QThread/QCoreApplication 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 nie fehl.
Diese Funktion wurde in Qt 6.7 eingeführt.
© 2025 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.