pyqt5利用pyqtDesigner的实现的登录界面

效果图:
为便于操作 界面和逻辑分离
  逻辑类:

import sys
import pymysql
from loginUI import *     //导入
from PyQt5.QtWidgets import *
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import *
from PyQt5.QtGui import 
class Login(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:Roman times;}"
                                    )
        self.ui.userLabel.setStyleSheet("QLabel{background:white;}"
                   "QLabel{color:rgb(100,100,100,250);font-size:15px;font-weight:bold;font-family:Roman times;}"
                   "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:Roman times;}"
                   "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:Roman times;}"
                    "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:2px 4px}")
        self.ui.registerButton.setStyleSheet("QPushButton{color:black}"
                                               "QPushButton:hover{color:red}"
                                               "QPushButton{background-color:lightgreen}"
                                               "QPushButton{border:2px}"
                                               "QPushButton{border-radius:10px}"
                                               "QPushButton{padding:2px 4px}")
 
        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')  # shortcut key
        # 登陆的槽函数登陆按钮 最好写在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 * from administrater where username = '" + name + "' and password = '" + pwd + "' and identity= '"+ identity +"' "
        db = PyMySQLHelper()
        db.selectALL(sql)

    def keyPressEvent(self, event):
        if event.key() == QtCore.Qt.Key_Enter:
            self.slotLogin()
    def findPwd(self):
        # self.accept()
        self.u = FPwd_ui()
        self.u.show()
        # self.ui.exec()
    def slotLogin(self):
        # # 获得登录输入
        name = self.ui.userlineEdit.text()
        pwd = self.ui.pwdlineEdit.text()
        print(name)
        db = PyMySQLHelper() 
        identity = self.ui.comboBox.currentIndex() # 获取下标
        identity = str(identity)

        if name != '' and pwd != '':
            if identity == '0':

                sql = "select * from administrater where username = '" + name + "' and " \
                                                                                "password = '" + pwd + "' and identity= '" + identity + "' "
                print(sql)
                # cursor.execute(sql)
                # results = cursor.fetchall()
                results = db.selectALL(sql)

                if results:
                    self.ui1 = Finance()
                    # self.ui1.exec()
                    self.ui1.show()
                    self.close()
                else:
                    OK = QMessageBox.warning(self, ("警告"), ("""账号或密码错误!"""))
                # cursor.close()
                # conn.close()
            elif identity == '1':

                sql = "select * from administrater where username = '" + name + "' and " \
                                                                                "password = '" + pwd + "' and identity= '" + identity + "' "
                print(sql)
                # cursor.execute(sql)
                # results = cursor.fetchall()
                results = db.selectALL(sql)
                if results:
                    self.ui2 = InfoManage()
                    self.ui2.show()
                    self.close()
                else:
                    OK = QMessageBox.warning(self, ("警告"), ("""账号或密码错误!"""))

            elif identity == '2':
                sql = "select * from administrater where username = '" + name + "' and " \
                                                                                "password = '" + pwd + "' and identity= '" + identity + "' "
                print(sql)

                results = db.selectALL(sql)
                # print(identity)

                if results:
                    self.uu = SeatManage()
                    self.uu.exec()
                    self.close()
                else:
                    OK = QMessageBox.warning(self, ("警告"), ("""账号或密码错误!"""))
            elif name == 'admin' and pwd == '123' and identity == '3':
                self.a = Admin()
                self.a.show()
                self.close()




        else:
            if name == '':
                OK = QMessageBox.warning(self, ("警告"), ("""请输入账号!"""))
            if pwd == '':
                OK = QMessageBox.warning(self, ("警告"), ("""请输入密码!"""))
        # cursor.close()
        # conn.close()
    def slotRegister(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_())

 

界面类:

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_login_Ui(object):
    def setupUi(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)

    def retranslateUi(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", "  请选择"))

 

具体代码:https://download.csdn.net/download/qq_32973061/10609192

你可能感兴趣的:(python学习笔记,pyqt5)