Qt移除layout里面的所有元素

⌚Time: 2023-03-08 22:33:52

👨‍💻Author: Jack Ge


void ClearLayout(QLayout* layout) {

    while (QLayoutItem* item = layout->takeAt(0))

        {

            if (QWidget* widget = item->widget()){

                widget->setParent(nullptr);

                layout->removeWidget(widget);

                widget->deleteLater();

            }



            if (QLayout* childLayout = item->layout())

                ClearLayout(childLayout);



            if (QSpacerItem* spaerItem = item->spacerItem())

                layout->removeItem(spaerItem);



            delete item;

        }

}