Quiero cerrar todas las demás ventanas abiertas por la ventana principal cuando la ventana principal está cerrada.
Por favor buscar debajo de la min. el código que se estaba probando:
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel, QVBoxLayout, QWidget
import sys
class AnotherWindow(QWidget):
"""
This "window" is a QWidget. If it has no parent, it
will appear as a free-floating window as we want.
"""
def __init__(self):
super().__init__()
layout = QVBoxLayout()
self.label = QLabel("Another Window")
layout.addWidget(self.label)
self.setLayout(layout)
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.button = QPushButton("Push for Window")
self.button.clicked.connect(self.show_new_window)
self.setCentralWidget(self.button)
def show_new_window(self, checked):
self.w = AnotherWindow()
self.w.show()
def close_another_window(self):
if self.w:
self.w.close()
app = QApplication(sys.argv)
w = MainWindow()
app.aboutToQuit.connect(w.close_another_window)
w.show()
app.exec()
Como se muestra arriba he intentado utilizar la aboutToQuit
la opción de la QApplication
pero sólo se llama cuando la otra ventana también está cerrada.
Quiero cerrar la otra ventana automáticamente cuando la ventana principal está cerrada.