QObjectCleanupHandler 类

QObjectCleanupHandler 类监视多个 QObject 的生命周期。更多信息...

头文件 #include <QObjectCleanupHandler>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core
继承自 QObject

公开函数

QObjectCleanupHandler()
virtual~QObjectCleanupHandler()
QObject *add(QObject *object)
voidclear()
boolisEmpty() const
voidremove(QObject *object)

详细描述

QObjectCleanupHandler 有助于在任何需要了解其他人所拥有的多个 QObject 在何时被删除的情况下使用。例如,当一个应用程序在共享库中分配的内存被引用时,这很重要。

要跟踪一些 QObject,创建一个 QObjectCleanupHandler,并使用 add() 函数添加你所感兴趣的对象。如果你不再对跟踪某一特定对象感兴趣,可以使用 remove() 函数将其从清理处理程序中删除。如果清理处理程序跟踪的对象被其他人删除,它将自动从清理处理程序中删除。你可以使用 clear() 函数或销毁清理处理程序来删除清理处理程序中所有对象。isEmpty() 函数返回 true 表示 QObjectCleanupHandler 没有要跟踪的对象。

另请参阅 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()。

© 2024 The Qt Company Ltd. 本文档中所包含的贡献的版权均为各自所有者的版权。本文档的提供是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款。Qt 以及相应的标志是 The Qt Company Ltd. 在芬兰以及/或全球其他国家的注册商标。所有其他商标均为其所有者的财产。