Chcem zatvoriť všetky ostatné okná otvoriť hlavné okno keď hlavné okno sa zavrie.
Nižšie nájdete min. kód že som bol testovanie:
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()
Ako je uvedené vyššie som sa snažil pomocou aboutToQuit
možnosť QApplication
,, ale to len dostane nazývajú keď sa ďalšie okno, tiež je zatvorené.
Chcem zavrieť ďalšie okno automaticky, keď mainwindow je zatvorené.