QObjectCleanupHandler Class
QObjectCleanupHandler 类监视多个 QObject 的生命周期。更多
Header: | #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已被删除时非常有用。例如,当在应用程序中引用在共享库中分配的内存时,这一点就非常重要。
要跟踪一些QObjects,可创建一个 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。
void QObjectCleanupHandler::remove(QObject *object)
从清理处理程序中删除object 。对象不会被销毁。
另请参见 add().
© 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.