基本上,我正在设计一个执行云计算的网络应用程序。当用户登录时,我想隐藏登录页面并显示另一页面。如果用户没有首先打开注册页面,这非常有用。如果用户打开注册页面并尝试再次登录,则会出现以下错误:
Traceback(最近一次调用最后一次):文件 " d:\斯德凡·夏邦尼耶\文件\ UNI \编程\工作空间\云 isututnticated中的计算\ src \ SignIn.py",第24行 MainWindow.hide()NameError:name' MainWindow'未定义
这是导致错误的代码段(在登录页面代码中):
def isAuthenticated(self):
if ClientFunctions.signIn(self.usernameField.text(), self.passwordField.text()):
self.flag = True
self.window = QtWidgets.QMainWindow()
self.ui = mainpage.Ui_MainWindow()
self.ui.myusername= self.usernameField.text()
self.ui.setupUi(self.window)
self.window.show()
MainWindow.hide()
else:
self.errorLabel.show()
这是在登录代码中打开注册页面的代码:
def openSignUpWindow(self):
global window
window = QtWidgets.QMainWindow()
self.ui = SignUp.Ui_Dialog()
self.ui.setupUi(window)
window.show()
这就是我从注册窗口打开登录窗口的方式:
def openSignInWindow(self):
self.window = QtWidgets.QMainWindow()
self.ui = SignIn.Ui_MainWindow()
self.ui.setupUi(self.window)
self.window.show()
代码由QT Designer(pyuic5)生成
这是登录代码:
from PyQt5 import QtCore, QtGui, QtWidgets
import SignUp
import ClientFunctions
import mainpage
username = None
class Ui_MainWindow(object):
flag = False
def isAuthenticated(self):
if ClientFunctions.signIn(self.usernameField.text(), self.passwordField.text()):
self.flag = True
self.window = QtWidgets.QMainWindow()
self.ui = mainpage.Ui_MainWindow()
self.ui.myusername= self.usernameField.text()
self.ui.setupUi(self.window)
self.window.show()
MainWindow.hide()
else:
self.errorLabel.show()
def openSignUpWindow(self):
global window
window = QtWidgets.QMainWindow()
self.ui = SignUp.Ui_Dialog()
self.ui.setupUi(window)
window.show()
def hideSignUpWindow(self):
global window
window.hide()
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(450, 601)
MainWindow.setStyleSheet("background-color: rgb(36, 48, 60);")
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.usernameField = QtWidgets.QLineEdit(self.centralwidget)
self.usernameField.setGeometry(QtCore.QRect(142, 260, 171, 22))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
self.usernameField.setPalette(palette)
self.usernameField.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
self.usernameField.setMouseTracking(False)
self.usernameField.setAutoFillBackground(False)
self.usernameField.setStyleSheet("background:white;\n"+"border:black;\n"+"border-radius:5px;")
self.usernameField.setText("")
self.usernameField.setReadOnly(False)
self.usernameField.setObjectName("usernameField")
self.passwordField = QtWidgets.QLineEdit(self.centralwidget)
self.passwordField.setGeometry(QtCore.QRect(142, 350, 171, 22))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
self.passwordField.setPalette(palette)
self.passwordField.setCursor(QtGui.QCursor(QtCore.Qt.IBeamCursor))
self.passwordField.setAutoFillBackground(False)
self.passwordField.setStyleSheet("background:white;\n"+"border:black;\n"+"border-radius:5px;")
self.passwordField.setInputMethodHints(QtCore.Qt.ImhHiddenText|QtCore.Qt.ImhNoAutoUppercase|QtCore.Qt.ImhNoPredictiveText|QtCore.Qt.ImhSensitiveData)
self.passwordField.setText("")
self.passwordField.setEchoMode(QtWidgets.QLineEdit.Password)
self.passwordField.setReadOnly(False)
self.passwordField.setObjectName("passwordField")
self.usernameLabel = QtWidgets.QLabel(self.centralwidget)
self.usernameLabel.setGeometry(QtCore.QRect(185, 220, 81, 20))
self.usernameLabel.setTextFormat(QtCore.Qt.AutoText)
self.usernameLabel.setScaledContents(False)
self.usernameLabel.setAlignment(QtCore.Qt.AlignCenter)
self.usernameLabel.setWordWrap(True)
self.usernameLabel.setObjectName("usernameLabel")
self.passwordLabel = QtWidgets.QLabel(self.centralwidget)
self.passwordLabel.setGeometry(QtCore.QRect(185, 310, 81, 20))
self.passwordLabel.setTextFormat(QtCore.Qt.AutoText)
self.passwordLabel.setScaledContents(False)
self.passwordLabel.setAlignment(QtCore.Qt.AlignCenter)
self.passwordLabel.setWordWrap(True)
self.passwordLabel.setObjectName("passwordLabel")
self.signInBut = QtWidgets.QPushButton(self.centralwidget)
self.signInBut.setGeometry(QtCore.QRect(157, 410, 141, 28))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(45, 147, 107))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(45, 147, 107))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(45, 147, 107))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(45, 147, 107))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(45, 147, 107))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(45, 147, 107))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(45, 147, 107))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(45, 147, 107))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(45, 147, 107))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
self.signInBut.setPalette(palette)
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setItalic(False)
font.setWeight(75)
self.signInBut.setFont(font)
self.signInBut.setStyleSheet("color: rgb(255, 255, 255);\n"+"background-color: rgb(45, 147, 107);\n" + "border-radius:5px;")
self.signInBut.setObjectName("signInBut")
self.signInBut.clicked.connect(self.isAuthenticated)
self.gotoSignUp = QtWidgets.QCommandLinkButton(self.centralwidget)
self.gotoSignUp.setGeometry(QtCore.QRect(80, 490, 301, 48))
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(36, 48, 60))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(36, 48, 60))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(36, 48, 60))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(36, 48, 60))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(36, 48, 60))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(36, 48, 60))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(36, 48, 60))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(36, 48, 60))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(36, 48, 60))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
self.gotoSignUp.setPalette(palette)
self.gotoSignUp.setStyleSheet("color: rgb(255, 255, 255);\n" + "border-radius:5px;")
self.gotoSignUp.setObjectName("gotoSignUp")
self.gotoSignUp.clicked.connect(self.openSignUpWindow)
self.gotoSignUp.clicked.connect(MainWindow.hide)
self.errorLabel = QtWidgets.QLabel(self.centralwidget)
self.errorLabel.setEnabled(True)
self.errorLabel.setGeometry(QtCore.QRect(94, 460, 281, 21))
self.errorLabel.setObjectName("errorLabel")
self.errorLabel.hide()
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(100, 60, 251, 131))
self.label.setStyleSheet("border-image: url(:/newPrefix/SignIn.jpg);")
self.label.setText("")
self.label.setObjectName("label")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.usernameField.setPlaceholderText(_translate("MainWindow", "Username"))
self.passwordField.setPlaceholderText(_translate("MainWindow", "Password"))
self.usernameLabel.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:10pt; color:#ffffff;\">Username</span></p></body></html>"))
self.passwordLabel.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:10pt; color:#ffffff;\">Password</span></p></body></html>"))
self.signInBut.setText(_translate("MainWindow", "Sign In"))
self.gotoSignUp.setText(_translate("MainWindow", "Dont have an account? Sign Up here!"))
self.errorLabel.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" color:#d10000;\">Username/Password combination does not exist</span></p></body></html>"))
import SignIn_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())