プログラムが returncode 0 でクラッシュし続けます。原因は qtabwidget のどこかにありますが、エラーが見つかりません。
QTabWidget *layout_tabs;
// create tabs
void myclass::fill_tabs(void)
{
kill_tabs(); // remove old tabs
layout_tabs = new QTabWidget();
// program adds content into a few tabs, like:
// widgets created, content created, put into layout, put into widget..
layout_tabs->addTab(widget, "description");
layout_tabs->addTab(widget2, "description2");
layout_tabs->show();
}
void myclass::kill_tabs(void)
{
if(layout_tabs==nullptr)
return;
layout_tabs->hide();
QWidget *window;
for ( int i=layout_tabs->count()-1; i>=0; --i)
{
window = layout_tabs->widget(i); // remember widget
layout_tabs->removeTab(i); // remove tab
free(window); // remove widget
}
free(layout_tabs); // remove qtabwidget
layout_tabs=nullptr;
}
filltabs() 関数が数回使用されます。古いタブウィジェットは破棄され、新しいタブウィジェットが作成されます。タブウィジェットを削除しなくても問題ありませんが、タブのみを削除します。プログラムは引き続きリターンコード 0 で終了します。