How does the main window know when a seperate window closes?

I am writing an app which has the login window as a separate window/class. So far, everything works as expected, but I am having trouble figuring out how to get the main window to detect when the login window closes. Does anyone have an idea as to how to make that work?

I thought that the closeEvent() method would help, but apparanty, Qwidget doesn’t have an option for it.

@pythonnoob

Without some code to see what you are trying it’s hard to say for sure what needs to change. But, I can say that if I wanted to have a login window for my app I would do something like the following pseudo code:

class LoginDialog(QDialog):
"""Class that defines my login window"""
    def __init__(self):
    super().__init__()
    # Define the layout and functionality of the login dialog here

class MainWindow(QMainWindow):
"""Class that defines my main application window"""
    def __init__(self):
    super().__init__()

    # Define the layout and functionality of the main window here

    # Call the login dialog
    login_dialog = LoginDialog()
    if login_dialog.exec():
        # Enters here if dialog returns with a QDialog.accept
    else:
        # Enters here is dialog returns with a QDialog.reject

I hope this helps. Building a QDialog is very similar to a a QMainWindow. The one thing I’d be sure to include in the dialog is the use of a QDialogButtonBox for the Ok and Cancel buttons (or whatever you want to call them). Then you can assign accept and reject directly to the button box.

btns = QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel
self.button_box = QDialogButtonBox(btns)
self.button_box.accepted.connect(self.accept)
self.button_box.rejected.connect(self.reject)

Here’s a link to the QDialogButtonBox documentation: https://doc.qt.io/qt-6/qdialogbuttonbox.html

Good Luck!