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