aboutToQuit

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction
from PyQt5.QtCore import QObject, pyqtSignal

class MyMainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        # Crear una acción para salir de la aplicación
        exit_action = QAction('Salir', self)
        exit_action.triggered.connect(self.close)

        # Agregar la acción al menú Archivo
        file_menu = self.menuBar().addMenu('Archivo')
        file_menu.addAction(exit_action)

    def closeEvent(self, event):
        # Se emite la señal aboutToQuit antes de salir
        self.aboutToQuit.emit()
        super().closeEvent(event)

La señal aboutToQuit se emite cuando la aplicación está a punto de salir. Puedes usar esta señal para realizar tareas de limpieza o guardar datos antes de que la aplicación se cierre. Aquí tienes un ejemplo de cómo puedes usarla:

class MyApp(QObject):
    aboutToQuit = pyqtSignal()

    def __init__(self):
        super().__init__()

        # Crear la ventana principal
        self.window = MyMainWindow()
        
        # Conectar la señal aboutToQuit de la ventana a la acción de limpieza
        self.window.aboutToQuit.connect(self.cleanUp)

    def cleanUp(self):
        # Realizar tareas de limpieza aquí antes de salir de la aplicación
        print("Tareas de limpieza realizadas antes de salir.")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    my_app = MyApp()
    sys.exit(app.exec_())


En este ejemplo, hemos creado una clase MyApp que representa una aplicación PyQt5. Hemos conectado la señal aboutToQuit de la ventana principal (MyMainWindow) a un método cleanUp en la clase MyApp. Cuando se emite la señal aboutToQuit, el método cleanUp se ejecutará, lo que te permite realizar tareas de limpieza antes de que la aplicación se cierre. En este caso, simplemente se muestra un mensaje en la consola, pero puedes agregar tus propias tareas de limpieza según tus necesidades.

No hay comentarios.:

Publicar un comentario

INDICE