QObject自我毁灭感知容器

时间:2015-03-17 12:10:02

标签: qt containers qt5 qobject self-destruction

是否存在Qt容器,它知道QObject的被破坏信号并在元素被销毁时删除该元素?

即。像这样:

QObject *obj1 = new MyObject();
QObject *obj2 = new MyObject();
QObjectContainer c;
c.add(obj1);
c.add(obj2);
qDebug() << c.size(); // Prints 2
delete obj1;
qDebug() << c.size(); // Prints 1

2 个答案:

答案 0 :(得分:1)

您可以通过在destroyed() - 派生类中捕获信号container来自行完成。

P.S。没有Qt课这样做,AFAIK。

答案 1 :(得分:0)

当指向的对象被删除时,QPointer将自动清除