feat/object-selection-panels #4
|
|
@ -111,15 +111,15 @@ void DynamicFormView::clear()
|
||||||
while (cardLayout_->count() > 0) {
|
while (cardLayout_->count() > 0) {
|
||||||
QLayoutItem* it = cardLayout_->takeAt(0);
|
QLayoutItem* it = cardLayout_->takeAt(0);
|
||||||
if (it->widget()) it->widget()->deleteLater();
|
if (it->widget()) it->widget()->deleteLater();
|
||||||
if (it->layout()) {
|
if (QLayout* sub = it->layout()) {
|
||||||
// 嵌套网格:先回收其子控件,再删布局,避免残留控件泄漏/重叠。
|
// 嵌套网格:先回收其子控件(控件归属 card_,删布局不会连带删),再让下方
|
||||||
QLayout* sub = it->layout();
|
// delete it 释放该嵌套布局本身——注意 it == it->layout()(QLayout 即 QLayoutItem),
|
||||||
|
// 故此处不可再 delete sub,否则与 delete it 重复释放导致崩溃。
|
||||||
while (sub->count() > 0) {
|
while (sub->count() > 0) {
|
||||||
QLayoutItem* sit = sub->takeAt(0);
|
QLayoutItem* sit = sub->takeAt(0);
|
||||||
if (sit->widget()) sit->widget()->deleteLater();
|
if (sit->widget()) sit->widget()->deleteLater();
|
||||||
delete sit;
|
delete sit;
|
||||||
}
|
}
|
||||||
delete sub;
|
|
||||||
}
|
}
|
||||||
delete it;
|
delete it;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue