Solución:
Anular el closeEvent
método de QWidget
en tu 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 utilizar el QApplication
‘s aboutToQuit
señal como esta:
app = QApplication(sys.argv)
app.aboutToQuit.connect(myExitHandler) # myExitHandler is a callable
Si solo tiene una ventana (es decir, la última ventana) que desea detectar, puede usar el setQuitOnLastWindowClosed
función estática y la lastWindowClosed
señal.
from PySide2 import QtGui
import sys
def keep_alive():
print("ah..ah..ah..ah...staying alive...staying alive")
window.setVisibility(QtGui.QWindow.Minimized)
if __name__ == '__main__':
app = QtGui.QGuiApplication()
app.setQuitOnLastWindowClosed(False)
app.lastWindowClosed.connect(keep_alive)
window = QtGui.QWindow()
window.show()
sys.exit(app.exec_())
Espero que ayude a alguien, funcionó para mí, ya que en mi primer intento no pude anular closeEvent (), ¡falta de experiencia!
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)