i have qstackedlayout
contains few qwidget
on it. widgets layout qvboxlayout
have few qpushbutton
. wanted remove widgets inside qstackedlayout
, delete widgets , layouts but want buttons not deleted 'cause put them widget later.
here's code:
while (qlayoutitem *item = m_stacked_layout->takeat(0)) { qwidget *w = item->widget(); (int = 0; < w->layout()->count(); i++) { qpushbutton *button = qobject_cast<qpushbutton *>(w->layout()->itemat(i)->widget()); if (button) { w->layout()->removewidget(button); } } delete w; delete item; }
the application crashes @ line delete w;
. and, if remove delete
lines, application works fine.
but want buttons not deleted 'cause put them widget later.
- hide widgets want transfer
- set parent widget widgets
nullptr
- later... set necessary parent , show widgets
note: if want delete widgets inside slots, should use deletelater
method.