QObjectCleanupHandler Class
QObjectCleanupHandler クラスは、複数の QObject のライフサイクルを監視します。詳細...
| ヘッダー: | #include <QObjectCleanupHandler> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 継承元: | QObject |
パブリック関数
| QObjectCleanupHandler() | |
| virtual | ~QObjectCleanupHandler() |
| QObject * | add(QObject *object) |
| void | clear() |
| bool | isEmpty() const |
| void | remove(QObject *object) |
詳細な説明
QObjectCleanupHandlerは、他のオブジェクトによって所有されている複数のQObjectがいつ削除されたかを把握する必要がある場合に役立ちます。これは、例えば、共有ライブラリ内で割り当てられたメモリをアプリケーション内で参照する場合などに重要です。
一部のQObjectを追跡するには、QObjectCleanupHandlerを作成し、対象となるオブジェクトをadd()で登録します。特定のオブジェクトの追跡を不要になった場合は、remove()を使用して、そのオブジェクトをクリーンアップハンドラから削除します。クリーンアップハンドラによって追跡されているオブジェクトが他の何者かによって削除された場合、そのオブジェクトは自動的にクリーンアップハンドラから削除されます。clear() を使用するか、クリーンアップハンドラを破棄することで、クリーンアップハンドラ内のすべてのオブジェクトを削除できます。isEmpty() は、QObjectCleanupHandler が追跡すべきオブジェクトを保持していない場合、true を返します。
QPointerも参照してください 。
メンバ関数のドキュメント
QObjectCleanupHandler::QObjectCleanupHandler()
空の QObjectCleanupHandler を生成します。
[virtual noexcept] QObjectCleanupHandler::~QObjectCleanupHandler()
クリーンアップハンドラを破棄します。このクリーンアップハンドラ内のすべてのオブジェクトが削除されます。
clear()も参照してください 。
QObject *QObjectCleanupHandler::add(QObject *object)
object をこのクリーンアップハンドラに追加し、そのオブジェクトへのポインタを返します。
remove()も参照してください 。
void QObjectCleanupHandler::clear()
このクリーンアップハンドラ内のすべてのオブジェクトを削除します。クリーンアップハンドラは空になります。
isEmpty()も参照してください 。
bool QObjectCleanupHandler::isEmpty() const
このクリーンアップハンドラが空であるか、またはこのクリーンアップハンドラ内のすべてのオブジェクトが破棄された場合は、true を返します。それ以外の場合は false を返します。
add()、remove()、およびclear()も参照してください 。
void QObjectCleanupHandler::remove(QObject *object)
このクリーンアップハンドラから `object ` を削除します。オブジェクトは破棄されません。
add()も参照してください 。
© 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.