Close QDialog window on button click PyQt5

15 Views Asked by At

How can I close the QDialog window once the login button is clicked? Here is the code:

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog_LoginPage(object):
    def setupUi(self, Dialog_LoginPage):
        Dialog_LoginPage.setObjectName("Dialog_LoginPage")
        Dialog_LoginPage.resize(487, 320)
        self.label = QtWidgets.QLabel(Dialog_LoginPage)
        self.label.setGeometry(QtCore.QRect(0, 30, 491, 61))
        font = QtGui.QFont()
        font.setPointSize(25)
        font.setBold(True)
        self.label.setFont(font)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(Dialog_LoginPage)
        self.label_2.setGeometry(QtCore.QRect(20, 110, 461, 41))
        font = QtGui.QFont()
        font.setPointSize(15)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.lineEdit_name = QtWidgets.QLineEdit(Dialog_LoginPage)
        self.lineEdit_name.setGeometry(QtCore.QRect(20, 150, 451, 31))
        self.lineEdit_name.setClearButtonEnabled(False)
        self.lineEdit_name.setObjectName("lineEdit_name")
        self.pushButton_confirmLogin = QtWidgets.QPushButton(Dialog_LoginPage)
        self.pushButton_confirmLogin.setGeometry(QtCore.QRect(100, 230, 111, 41))
        self.pushButton_confirmLogin.setObjectName("pushButton_confirmLogin")
        self.pushButton_cancelLogin = QtWidgets.QPushButton(Dialog_LoginPage)
        self.pushButton_cancelLogin.setGeometry(QtCore.QRect(280, 230, 111, 41))
        self.pushButton_cancelLogin.setObjectName("pushButton_cancelLogin")
        self.username = ""

        self.retranslateUi(Dialog_LoginPage)
        QtCore.QMetaObject.connectSlotsByName(Dialog_LoginPage)

        self.pushButton_confirmLogin.clicked.connect(self.login_clicked)

    def login_clicked(self):
        self.username = self.lineEdit_name.text()
        # Close QDialog Window here
        

    def retranslateUi(self, Dialog_LoginPage):
        _translate = QtCore.QCoreApplication.translate
        Dialog_LoginPage.setWindowTitle(_translate("Dialog_LoginPage", "Dialog"))
        self.label.setText(_translate("Dialog_LoginPage", "Login Page"))
        self.label_2.setText(_translate("Dialog_LoginPage", "Please enter your name:"))
        self.pushButton_confirmLogin.setText(_translate("Dialog_LoginPage", "Login"))
        self.pushButton_cancelLogin.setText(_translate("Dialog_LoginPage", "Cancel"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog_LoginPage = QtWidgets.QDialog()
    ui = Ui_Dialog_LoginPage()
    ui.setupUi(Dialog_LoginPage)
    Dialog_LoginPage.show()
    sys.exit(app.exec_())

I tried using Dialog_LoginPage.close(), Dialog_LoginPage.accept(), Dialog_LoginPage.reject(). None of these have worked and I am not sure what I am doing wrong.

0

There are 0 best solutions below