我有一个QStackedLayout,上面没有几个QWidget。小部件布局是QVBoxLayout,它也有很少的QPushButton。我想要做的是删除QStackedLayout中的所有小部件,然后删除小部件和布局,但是,我不想删除所有的按钮,因为稍后我会将它们放到另一个小部件中。
这是我的密码:
while (QLayoutItem *item = m_stacked_layout->takeAt(0)) {
QWidget *w = item->widget();
for (int i = 0; i < w->layout()->count(); i++) {
QPushButton *button = qobject_cast<QPushButton *>(w->layout()->itemAt(i)->widget());
if (button) {
w->layout()->removeWidget(button);
}
}
delete w;
delete item;
}应用程序在行delete w;处崩溃。而且,如果删除delete行,应用程序就可以正常工作。
发布于 2015-04-28 09:11:48
但是我不希望所有的按钮都被删除,因为稍后我会把它们放到另一个小部件上。
nullptr注意:如果要删除某些插槽中的小部件,则应该使用deleteLater方法。
https://stackoverflow.com/questions/29907695
复制相似问题