删除界面上控件
删除界面上控件的注意点:
QLayout *layout = this->ui->frameWindow->layout(); if (layout != nullptr){ for (int i = layout->count()-1; i >= 0; i--) //倒序删除,reverse deleting to avoid Count changed in the middle of process { QLayoutItem* layoutItem = layout-> itemAt(i); layout->removeItem(layoutItem); if (layoutItem->widget() != nullptr) //QLayoutItem可能包含widget(如QWidgetItem),也可能不包含widget(如QLayout、QSpacerItem) layoutItem->widget()->deleteLater(); //不删除会残留痕迹 } delete layout; }