qt子窗口关闭直接销毁
时间: 2023-07-05 18:04:22 浏览: 232
QTwindow_qtaddwindow_QT编程_QT_子窗口_
在Qt中,子窗口默认情况下关闭时不会直接销毁,而是会被隐藏起来以备下次使用。如果您想要在关闭子窗口时直接销毁它,可以通过以下两种方式实现:
1. 重写子窗口的 closeEvent() 函数,在函数中添加销毁窗口的代码。
```cpp
void MySubWindow::closeEvent(QCloseEvent *event)
{
// 调用父类的 closeEvent() 函数,确保窗口可以正常关闭
QMainWindow::closeEvent(event);
// 销毁子窗口
deleteLater();
}
```
2. 在主窗口中设置子窗口的属性,使其在关闭时立即销毁。
```cpp
MySubWindow *subWindow = new MySubWindow(this);
subWindow->setAttribute(Qt::WA_DeleteOnClose);
subWindow->show();
```
使用第二种方法时,需要注意的是,子窗口被关闭时会立即被销毁,因此如果您需要在其他地方继续使用该子窗口,就需要在关闭前将其指针(或者其他必要的数据)保存下来。
阅读全文