最近一个项目开发,需要动态的添加/删除控件,下面记录一下方法,该方法参考了网上的方法,但是没有针对layout中嵌套layout的做处理:
void deleteAllitemsOfLayout(QLayout* layout){
QLayoutItem *child;
while ((child = layout->takeAt(0)) != nullptr)
{
///setParent为NULL,防止删除之后界面不消失
if(child->widget())
{
child->widget()->setParent(nullptr);
}else if(child->layout()){
deleteAllitemsOfLayout(child->layout());
}
delete child;
}
}