一开始 ,我定义的一个布局中既有控件又有布局,在删除时使用各种遍历方法都不能很好的解决,由于开发时间关系,进行了调整,将布局中控件依次拆开直接放入要重布的布局中。
QLayoutItem*child
while(( child=missionWidgetLayout->takeAt)!=0)
{
if(child->widget())
{
child->widget()->setParent(NULL);
}
delete child;
}
上边方法是测试通过的
踩坑总结:
while(missionWidgetLayout->count())
{
QLayoutItem *child =missionWidgetLayout->takeAt(0);
if(child==nullptr)
{
return;
}
missionWidgetLayout->removeItem(0);
delete child;
}