在查看了诸多大佬的博客,也没有找到解决问题的办法后,对比了父子对象之间的属性,在付出了几天尝试后,找出了手动释放并删除子对象的办法。由于子对象绑定在父对象的子对象列表中,所以,首先需要解除父对象对子对象的绑定,再谈释放并删除子对象事宜。
其实,核心是以下这一句代码。
btnsList[bLi]->setParent(Q_NULLPTR);
btnsList 是QPushButton类型的对象指针的列表。将子对象(pushButton)的父对象置空,让子对象脱离父对象的体系,然后就可以惬意地释放并删除子对象了。
QList <QPushButton*>btnsList=ui->dirsBtnsLabel->findChildren<QPushButton*>();
这一句是获取父对象 ui->dirsBtnsLabel 的QPushButton* 型的子对象列表。
以下是两种释放并删除子对象的办法。
办法一: