Я не думаю, что есть какой-либо другой способ, чем описывать (переопределяя событие закрытия), чтобы делать именно то, что вы просите.
Могут быть другие способы достижения того, чего вы хотите, не делая этого, в зависимости от того, почему вы хотите знать, когда он закрыт. Другими вариантами могут быть использование сигнала destroyed, проверка QApplication::focusWidget(), или, возможно, родительский контроль его children.
Редактировать в ответ на комментарий:
Сигналов и слоты отключаются автоматически при разрушении QObjects, и я хотел бы предложить, глядя на использование QSharedPointers или QScopedPointers для обработки вашего QObjects продолжительности жизни вместо этого. Применяя эти методы, вам не нужен сигнал из закрытого окна.
Мне нужно очистить некоторые соединения между сигналами/слотами и удалить некоторые объекты. –
Я просто хотел добавить, что использование сигнала 'destroy()' для доступа к QMdiSubWindow является опасным (т. Е. Подключить сигнал 'destroy()' к слоту, а затем в слоте передать 'sender()' в QMdiSubWindw), поскольку сигнал 'destroy()' испускается в деструкторе QObject. Это означает, что к тому времени, когда выдается сигнал 'destroy()', деструктор QMdiSubWindow уже вызван. – btse