diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 99a21ebd01c..8b7cfd231bc 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -184,6 +184,12 @@ QWindow::QWindow(QWindowPrivate &dd, QWindow *parent) QWindow::~QWindow() { Q_D(QWindow); + + // Delete child windows up front, instead of waiting for ~QObject, + // in case the destruction of the child references its parent as + // a (no longer valid) QWindow. + qDeleteAll(findChildren(Qt::FindDirectChildrenOnly)); + d->destroy(); // Decouple from parent before window goes under setParent(nullptr);