我的程序不断崩溃返回代码0. 原因是在我qtabwidget的某处,但我找不到错误。删除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()函数被使用了几次。旧的tabwidget被销毁并创建一个新的。 不要紧,如果我不删除tabwidget,但只删除选项卡。该程序仍然退出,返回代码为0.
感谢您的回答。也许我忘了提及主窗口没有关闭。该窗口是显示计算结果的单独窗口。当我通过关闭主窗口退出程序时,kdevelop说,程序'返回代码为0'。所以它不是一个真正的'正常结束',因为kdevelop另有说法。 – 2013-02-12 03:24:42
从命令行启动它说:分割错误 – 2013-02-12 05:07:11
好的我解决了这个问题。我应该在de构造函数中使用layout_tabs = new QTabWidget(0)(不是QTabWidget()!),而不是删除tabwidget,只删除选项卡。 – 2013-02-12 23:13:02