Je veux fermer toutes les autres fenêtres ouvertes par la fenêtre principale lorsque la fenêtre principale est fermée.
Veuillez trouver ci-dessous le min. le code que j'ai été le tester:
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()
Comme indiqué ci-dessus, j'ai essayé à l'aide de la aboutToQuit
l'option de la QApplication
mais il ne s'appelle quand l'autre fenêtre est aussi fermé.
Je veux fermer la une autre fenêtre automatiquement lorsque le mainwindow est fermé.