首页 > 解决方案 > PyQt5没有创建新对话框

问题描述

我第一次使用 PyQt5,我有一个简单的登录窗口,当用户成功登录时,我希望它破坏当前对话框并创建新对话框。

if __name__ == "__main__":
    def LoggedIn():
        if ui.checkSQL() == True:
            print('working')
            login2IG = QtWidgets.QDialog()
            ui2 = Ui_Dialog()
            ui2.setupUi(login2IG)
            login2IG.show()
            # loginPage.close
        else:
            print('not working')
    import sys
    app = QtWidgets.QApplication(sys.argv)
    loginPage = QtWidgets.QDialog()
    ui = Ui_loginPage()
    ui.setupUi(loginPage)
    loginPage.show()
    ui.pushButton.clicked.connect(LoggedIn)
    # ui.pushButton.clicked.connect(loginPage.close)
    # ui.pushButton.clicked.connect(login2IG.show)
    sys.exit(app.exec_())

对象和窗口工作,但它只是没有像我需要的那样创建新窗口。

这是发生了什么的视频

标签: pythonpython-3.xuser-interfacedialogpyqt5

解决方案


设法自己解决了这个问题,在澄清第二个对话框时,在下面做

loginPage = QtWidgets.QDialog()

所以这是新代码

if __name__ == "__main__":
    def LoggedIn():
        if ui.checkSQL() == True:
            show_popup("Success", "Welcome, " + ui.username2DB.text())
            loginPage.close()
            login2IG.show()
        else:
            show_popup("Failed", "Please try again")
    import sys
    app = QtWidgets.QApplication(sys.argv)
    loginPage = QtWidgets.QDialog()
    login2IG = QtWidgets.QDialog()
    ui = Ui_loginPage()
    ui2 = Ui_Dialog()
    ui.setupUi(loginPage)
    ui2.setupUi(login2IG)
    loginPage.show()
    ui.pushButton.clicked.connect(LoggedIn)

推荐阅读