pyqt5利用pyqtDesigner实现登录界面
本文实例为大家分享了pyqt5利用pyqtDesigner实现登录界面的具体代码,供大家参考,具体内容如下
为便于操作界面和逻辑分离
逻辑类:
importsys importpymysql fromloginUIimport*//导入 fromPyQt5.QtWidgetsimport* fromPyQt5importQtWidgets,QtCore,QtGui fromPyQt5.QtCoreimport* fromPyQt5.QtGuiimport classLogin(QtWidgets.QDialog): def__init__(self): super(Login,self).__init__() self.ui=Ui_login_Ui() self.ui.setupUi(self) #self.setMinimumSize(QtCore.QSize(400,200))#控制缩放范围 #self.setMaximumSize(QtCore.QSize(400,200)) self.setWindowTitle("欢迎使用停车场管理系统") self.setFixedSize(self.width(),self.height()) self.ui.labelTip.hide() self.ui.labelTip.setText("密码或用户名不能为空!") #设置label字体 labelFont=QFont() labelFont.setPixelSize(15) #设置动态背景 self.gif=QMovie('bg2.gif') self.ui.label_2.setMovie(self.gif) self.gif.start() #这在label属性 self.ui.labelTip.setStyleSheet( "QLabel{color:red;font-size:12px;font-weight:bold;font-family:Romantimes;}" ) self.ui.userLabel.setStyleSheet("QLabel{background:white;}" "QLabel{color:rgb(100,100,100,250);font-size:15px;font-weight:bold;font-family:Romantimes;}" "QLabel:hover{color:rgb(300,300,300,120);}") self.ui.pwdlabel.setStyleSheet("QLabel{background:white;}" "QLabel{color:rgb(100,100,100,250);font-size:15px;font-weight:bold;font-family:Romantimes;}" "QLabel:hover{color:rgb(300,300,300,120);}") self.ui.label.setStyleSheet("QLabel{background:white;}" "QLabel{color:rgb(100,100,100,250);font-size:15px;font-weight:bold;font-family:Romantimes;}" "QLabel:hover{color:rgb(300,300,300,120);}") self.ui.loginButton.setStyleSheet("QPushButton{color:black}" "QPushButton:hover{color:red}" "QPushButton{background-color:lightblue}" "QPushButton{border:2px}" "QPushButton{border-radius:10px}" "QPushButton{padding:2px4px}") self.ui.registerButton.setStyleSheet("QPushButton{color:black}" "QPushButton:hover{color:red}" "QPushButton{background-color:lightgreen}" "QPushButton{border:2px}" "QPushButton{border-radius:10px}" "QPushButton{padding:2px4px}") palette=QPalette() icon=QPixmap('bg2.gif').scaled(800,600) palette.setBrush(self.backgroundRole(),QBrush(icon)) self.setPalette(palette) self.ui.userLabel.setFont(labelFont) self.ui.pwdlabel.setFont(labelFont) self.ui.label.setFont(labelFont) #设置控件尺寸 #self.ui.userlineEdit.setFrame(False) #self.ui.pwdlineEdit.setFrame(False) self.ui.pwdlineEdit.setEchoMode(QLineEdit.Password)#输入框设为密码模式 self.ui.pwdlineEdit.setClearButtonEnabled(True) self.ui.userlineEdit.setClearButtonEnabled(True) self.ui.userlineEdit.setFixedWidth(190) self.ui.userlineEdit.setFixedHeight(30) self.ui.pwdlineEdit.setFixedWidth(190) self.ui.pwdlineEdit.setFixedHeight(30) self.ui.comboBox.setFixedWidth(100) self.ui.comboBox.setFixedHeight(28) self.ui.loginButton.setFixedSize(75,28) self.ui.registerButton.setFixedSize(75,28) self.ui.loginButton.setShortcut('Enter')#shortcutkey #登陆的槽函数登陆按钮最好写在init的析构函数中,避免链接多次产生异常 self.ui.loginButton.clicked.connect(self.slotLogin) self.ui.registerButton.clicked.connect(self.slotRegister) self.ui.pushButton.clicked.connect(self.findPwd) name=self.ui.userlineEdit.text() pwd=self.ui.pwdlineEdit.text() identity=self.ui.comboBox.currentIndex() identity=str(identity) sql="select*fromadministraterwhereusername='"+name+"'andpassword='"+pwd+"'andidentity='"+identity+"'" db=PyMySQLHelper() db.selectALL(sql) defkeyPressEvent(self,event): ifevent.key()==QtCore.Qt.Key_Enter: self.slotLogin() deffindPwd(self): #self.accept() self.u=FPwd_ui() self.u.show() #self.ui.exec() defslotLogin(self): ##获得登录输入 name=self.ui.userlineEdit.text() pwd=self.ui.pwdlineEdit.text() print(name) db=PyMySQLHelper() identity=self.ui.comboBox.currentIndex()#获取下标 identity=str(identity) ifname!=''andpwd!='': ifidentity=='0': sql="select*fromadministraterwhereusername='"+name+"'and"\ "password='"+pwd+"'andidentity='"+identity+"'" print(sql) #cursor.execute(sql) #results=cursor.fetchall() results=db.selectALL(sql) ifresults: self.ui1=Finance() #self.ui1.exec() self.ui1.show() self.close() else: OK=QMessageBox.warning(self,("警告"),("""账号或密码错误!""")) #cursor.close() #conn.close() elifidentity=='1': sql="select*fromadministraterwhereusername='"+name+"'and"\ "password='"+pwd+"'andidentity='"+identity+"'" print(sql) #cursor.execute(sql) #results=cursor.fetchall() results=db.selectALL(sql) ifresults: self.ui2=InfoManage() self.ui2.show() self.close() else: OK=QMessageBox.warning(self,("警告"),("""账号或密码错误!""")) elifidentity=='2': sql="select*fromadministraterwhereusername='"+name+"'and"\ "password='"+pwd+"'andidentity='"+identity+"'" print(sql) results=db.selectALL(sql) #print(identity) ifresults: self.uu=SeatManage() self.uu.exec() self.close() else: OK=QMessageBox.warning(self,("警告"),("""账号或密码错误!""")) elifname=='admin'andpwd=='123'andidentity=='3': self.a=Admin() self.a.show() self.close() else: ifname=='': OK=QMessageBox.warning(self,("警告"),("""请输入账号!""")) ifpwd=='': OK=QMessageBox.warning(self,("警告"),("""请输入密码!""")) #cursor.close() #conn.close() defslotRegister(self): self.i=reUi()#self.i的窗口命名不能重复 self.i.exec_() if__name__=='__main__': app=QtWidgets.QApplication(sys.argv) my=Login() my.show() sys.exit(app.exec_())
界面类:
fromPyQt5importQtCore,QtGui,QtWidgets classUi_login_Ui(object): defsetupUi(self,login_Ui): login_Ui.setObjectName("login_Ui") login_Ui.resize(581,533) self.gridLayoutWidget=QtWidgets.QWidget(login_Ui) self.gridLayoutWidget.setGeometry(QtCore.QRect(160,330,295,141)) self.gridLayoutWidget.setObjectName("gridLayoutWidget") self.gridLayout=QtWidgets.QGridLayout(self.gridLayoutWidget) self.gridLayout.setContentsMargins(0,0,0,0) self.gridLayout.setObjectName("gridLayout") self.horizontalLayout_2=QtWidgets.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.loginButton=QtWidgets.QPushButton(self.gridLayoutWidget) self.loginButton.setObjectName("loginButton") self.horizontalLayout_2.addWidget(self.loginButton) self.registerButton=QtWidgets.QPushButton(self.gridLayoutWidget) self.registerButton.setObjectName("registerButton") self.horizontalLayout_2.addWidget(self.registerButton) self.pushButton=QtWidgets.QPushButton(self.gridLayoutWidget) self.pushButton.setObjectName("pushButton") self.horizontalLayout_2.addWidget(self.pushButton) self.gridLayout.addLayout(self.horizontalLayout_2,4,1,1,1) self.userlineEdit=QtWidgets.QLineEdit(self.gridLayoutWidget) self.userlineEdit.setObjectName("userlineEdit") self.gridLayout.addWidget(self.userlineEdit,0,1,1,1) self.userLabel=QtWidgets.QLabel(self.gridLayoutWidget) self.userLabel.setObjectName("userLabel") self.gridLayout.addWidget(self.userLabel,0,0,1,1) self.labelTip=QtWidgets.QLabel(self.gridLayoutWidget) self.labelTip.setObjectName("labelTip") self.gridLayout.addWidget(self.labelTip,3,1,1,1) self.pwdlineEdit=QtWidgets.QLineEdit(self.gridLayoutWidget) self.pwdlineEdit.setObjectName("pwdlineEdit") self.gridLayout.addWidget(self.pwdlineEdit,1,1,1,1) self.pwdlabel=QtWidgets.QLabel(self.gridLayoutWidget) self.pwdlabel.setObjectName("pwdlabel") self.gridLayout.addWidget(self.pwdlabel,1,0,1,1) self.comboBox=QtWidgets.QComboBox(self.gridLayoutWidget) self.comboBox.setObjectName("comboBox") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.gridLayout.addWidget(self.comboBox,2,1,1,1) self.label=QtWidgets.QLabel(self.gridLayoutWidget) self.label.setObjectName("label") self.gridLayout.addWidget(self.label,2,0,1,1) self.label_2=QtWidgets.QLabel(login_Ui) self.label_2.setGeometry(QtCore.QRect(-10,0,601,321)) self.label_2.setText("") self.label_2.setObjectName("label_2") self.retranslateUi(login_Ui) QtCore.QMetaObject.connectSlotsByName(login_Ui) defretranslateUi(self,login_Ui): _translate=QtCore.QCoreApplication.translate login_Ui.setWindowTitle(_translate("login_Ui","Form")) self.loginButton.setText(_translate("login_Ui","登陆")) self.registerButton.setText(_translate("login_Ui","注册")) self.pushButton.setText(_translate("login_Ui","找回密码")) self.userLabel.setText(_translate("login_Ui","账户")) self.labelTip.setText(_translate("login_Ui","密码或用户名错误")) self.pwdlabel.setText(_translate("login_Ui","密码")) self.comboBox.setItemText(0,_translate("login_Ui","财务管理员")) self.comboBox.setItemText(1,_translate("login_Ui","信息管理员")) self.comboBox.setItemText(2,_translate("login_Ui","停车场管理员")) self.comboBox.setItemText(3,_translate("login_Ui","超级管理员")) self.label.setText(_translate("login_Ui","请选择"))
具体代码:pyqt5实现登录界面
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。