私は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
行を削除すると、アプリケーションは正常に動作します。