首先做一个假设:我们要实现一个程序,程序中有一个MainWindow,MainWindow中有一个DockWidget。在点DockWidget的关闭按钮的时候,需要在MainWindow中进行一些处理,然后释放DockWidget。何以实现?
我想到的是:在DockWidget类中声明一个信号,并把这个信号连接到MainWindow类中的处理函数removeDockWidget(), 最后重载closeEvent函数,在closeEvent中发送这个信号。
而在removeDockWidget()中,我是这样写的:
void MainWindow::removeDockWidget()
{
/******************************
* some function deal with other things
* ……
……
……
*****************************/
delete dockWidget; //release the space assigned to DockWidget
}
在调试的时候,虽然DockWidget的析构函数可以被调用来析构这个类,但是会有如下两个debug信息:
<