QWidget控件在点击关闭按钮时会自动触发槽函数close(),Qt给出帮助文档
关闭此Widget。 如果Widget已关闭,则返回 true; 否则返回假。
首先它向Widget发送一个 QCloseEvent。 如果Widget接受关闭事件,则Widget将被隐藏。 如果它忽略该事件,则什么也不会发生。 QWidget::closeEvent() 的默认实现接受关闭事件。
所以widget 的关闭实际是将其隐藏,而没有释放内存。
如果想要关闭时删除Widget而不是仅仅隐藏,可以通过设置属性
setAttribute(Qt::WA_DeleteOnClose);
Qt::WA_DeleteOnClose的帮助文档中指出其功能是
Makes Qt delete this widget when the widget has accepted the close event。