PySide / PyQt detecta si el usuario intenta cerrar la ventana

¿Hay alguna forma de detectar si el usuario está intentando cerrar la ventana? Por ejemplo, en Tkinter podemos hacer algo como esto:

def exit_dialog(): #do stuff pass root = Tk() root.protocol("WM_DELETE_WINDOW", exit_dialog) root.mainloop() 

Gracias.

Reemplace el método closeEvent de QWidget en su ventana principal.

Por ejemplo:

 class MainWindow(QWidget): # or QMainWindow ... def closeEvent(self, event): # do stuff if can_exit: event.accept() # let the window close else: event.ignore() 

Otra posibilidad es usar la señal aboutToQuit la siguiente manera:

 app = QApplication(sys.argv) app.aboutToQuit.connect(myExitHandler) # myExitHandler is a callable