是否存在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
答案 0 :(得分:1)
您可以通过在destroyed()
- 派生类中捕获信号container
来自行完成。
P.S。没有Qt课这样做,AFAIK。
答案 1 :(得分:0)
当指向的对象被删除时,QPointer将自动清除