Tuesday, 15 January 2013

c++ - delete qtabwidget -



c++ - delete qtabwidget -

my programme keeps crashing returncode 0. cause somewhere in qtabwidget can't find error.

qtabwidget *layout_tabs; // create tabs void myclass::fill_tabs(void) { kill_tabs(); // remove old tabs layout_tabs = new qtabwidget(); // programme adds content few tabs, like: // widgets created, content created, set layout, set 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; ( 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; }

the filltabs() function used few times. old tabwidget destroyed , new created. not matter if don't delete tabwidget, remove tabs. programme still exits returncode 0.

you phone call free(layout_tabs) allocate operator new(). should deallocate delete layout_tabs instead. don't see how window variable allocated should check if should deallocated operator delete(), or if qtabwidget owns memory (i.e. if responsible managing memory).

c++ qt4.8 qtabwidget

No comments:

Post a Comment