python - 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_())
对象和窗口工作,但它只是没有像我需要的那样创建新窗口。
解决方案
设法自己解决了这个问题,在澄清第二个对话框时,在下面做
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)
推荐阅读
- c# - foreach 带有必须由两个变量检查的 where 和 condition 参数
- fortran - gfortran destructor of members
- javascript - 在js中使用neo4j驱动
- angular - Powerbi angular library error when installed
- docker - 在 linux 上的 docker 容器中启动 YouTrack
- java - 在 Hibernate 中创建列类型 Datetime
- asp.net-mvc - 在用于 WebAPI 和 WebApplication 的通用 c# 类库中获取客户端的 IP 地址
- c - 反向阵列 C
- google-chrome - Google Chrome 声称 TortoiseGit 和 TortoiseSVN 是不兼容的应用程序
- angular - 如何将数据传递到角度材料底页