QObject 自毁感知容器

QObject selfdestruction aware container

是否有 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

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

您可以通过在 container 派生的 class.

中捕获信号 destroyed() 来自己完成

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