В Python (pyqt4 или pyqt5) вам нужно сделать следующее:
class MyWindow(QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
#
# My initializations...
#
''''''
def closeEvent(self, *args, **kwargs):
#
# Stuff I want to do when this
# just before (!) this window gets closed...
#
''''''
Интересно знать, что содержимое функции closeEvent (..) выполняется непосредственно перед закрытием окна. Вы можете проверить это с помощью следующего теста:
# Test if the closeEvent(..) function
# executes just before or just after the window closes.
def closeEvent(self, *args, **kwargs):
# 'self' is the QMainWindow-object.
print(self)
print(self.isVisible())
# Print out the same stuff 2 seconds from now.
QTimer.singleShot(2000, lambda: print(self))
QTimer.singleShot(2100, lambda: print(self.isVisible()))
''''''
Это вывод в вашем терминале:
<myProj.MyWindow object at 0x000001D3C3B3AAF8>
True
<myProj.MyWindow object at 0x000001D3C3B3AAF8>
False
Это доказывает, что окно все еще было видно при входе в функцию closeEvent (..) , но не после выхода из этой функции.