このページでは

QEventLoopLocker Class

QEventLoopLocker クラスは、イベントループが不要になった際にそれを終了させる手段を提供します。詳細...

ヘッダー: #include <QEventLoopLocker>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

パブリック関数

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)

詳細な説明

QEventLoopLocker は、QCoreApplication インスタンス、QEventLoop インスタンス、またはQThread インスタンスといった特定のオブジェクトに対して動作します。

これにより、たとえば、イベントループを使用して一連のジョブを実行し、最後のジョブが終了した後にそのイベントループを終了することが可能になります。これは、各ジョブインスタンスに QEventLoopLocker を保持することで実現されます。

QCoreApplication 上で動作するバリアントでは、最後のGUIウィンドウが閉じられた後に、非同期で実行中のジョブを終了させることができます。これは、例えばネットワークへデータをアップロードするジョブを実行する場合などに役立ちます。

QEventLoop およびQCoreApplicationも参照してください 。

メンバ関数のドキュメント

[noexcept] QEventLoopLocker::QEventLoopLocker()

QCoreApplication 上で動作するイベントロッカーを作成します。

QCoreApplication::isQuitLockEnabled()がtrue である限り、アプリケーション上で動作しているQEventLoopLockersがなくなると、アプリケーションは終了を試みます。

なお、たとえば開いているウィンドウがある場合や、QEvent::Quit イベントが無視されている場合など、終了を試みても必ずしもアプリケーションが終了するとは限りません。

QCoreApplication::quit() およびQCoreApplication::isQuitLockEnabled()も参照してください 。

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

loop 上で動作するイベントロッカーを作成します。

この特定のQEventLoop は、それに対して動作しているQEventLoopLockerがなくなると終了します。

QEventLoop::quit()も参照してください 。

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

thread 上で動作するイベントロッカーを作成します。

この特定のQThread は、それに対して動作しているQEventLoopLockerがすべて終了すると終了します。

QThread::quit()も参照してください 。

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

other からイベントループロッカーをムーブコンストラクタで生成します。other のデストラクタはノーオペレーション(何もしない)となりますが、QEventLoop/QThread/QCoreApplication が終了するのを防ぐ責任は、新しいオブジェクトに移管されます。

この関数は Qt 6.7 で導入されました。

[noexcept] QEventLoopLocker::~QEventLoopLocker()

このイベントループロッカーオブジェクトを破棄します

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

このQEventLoopLocker のオブジェクトと状態を、other と入れ替えます。この操作は非常に高速で、失敗することはありません。

この関数は Qt 6.7 で導入されました。

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

other からこのイベントループロッカーを移動・割り当てます。other のデストラクタは何も行いませんが、QEventLoop/QThread/QCoreApplication が終了するのを防ぐ責任は、このオブジェクトに移管されます。

この関数は Qt 6.7 で導入されました。

関連する非メンバー関数

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

lhs のオブジェクトと状態を、rhs と入れ替えます。この操作は非常に高速で、失敗することはありません。

この関数は 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.