人脸识别学生考勤系统【2】--登录

人脸识别学生考勤系统【2】--登录_第1张图片
人脸识别学生考勤系统的登录界面设计如上图所示,关键部分为圈红色的位置。
用户名,密码—登录
登录成功目前没有写跳转页面,只是在终端输出“success”,登录失败会在忘记密码按钮的下方显示“用户名密码输入错误”,然后再下一次点击登录按钮的时候会先清空该提示。我觉得这个地方做的不是很好,还可以再优化一下,我想要点击任何一个输入框,提示信息就会消失,大家有好的建议可以留言试试。
右上角的两个按钮一个用于最小化窗口,一个用于关闭窗口。关闭窗口的同时关闭数据库,不用在每次增删查改的时候打开数据库,然后再关闭数据库,会花费不少时间。而且把数据库共用函数提出去,可以只写sql语句,然后传入数据库。
登录窗口我设置了界面大小不可以改变,因为qt加背景图的话,界面拖动图片大小不会跟着变化。所以如果加背景图最好设置界面大小固定,如果没有那就随意了。本人才学疏浅,不会设置背景图随着界面大小变化,如果有会的大佬,可以教教我,不胜感激。

代码如下

# 登录
from PySide2.QtCore import Qt
from PySide2.QtGui import QIcon
from PySide2.QtUiTools import QUiLoader
from PySide2.QtWidgets import QApplication, QLineEdit

from register import Register
from share import SI
import data as dt


class Login:
    def __init__(self):
        # 加载文件
        self.ui = QUiLoader().load('qt/login.ui')
        # 设置系统运行图标
        self.ui.setWindowIcon(QIcon('pic/att.ico'))
        # 设置窗口大小
        self.ui.resize(911, 596)
        # 设置窗口不可拖动
        self.ui.setFixedSize(self.ui.width(), self.ui.height())
        # 设置窗口只显示关闭按钮
        self.ui.setWindowFlags(Qt.WindowCloseButtonHint)
        # 隐藏边框
        self.ui.setWindowFlags(Qt.FramelessWindowHint)
        #设置密码密文显示
        self.ui.password.setEchoMode(QLineEdit.Password)

        self.ui.min_btn.clicked.connect(self.to_minmize_window)
        self.ui.close_btn.clicked.connect(self.to_close_window)
        self.ui.loginbtn.clicked.connect(self.login)
        self.ui.forgetbtn.clicked.connect(self.forgetpwd)
        self.ui.registerbtn.clicked.connect(self.to_register)

    # 关闭窗口
    def to_close_window(self):
        dt.closeDB()
        print("数据库已关闭")
        self.ui.close()

    # 最小化窗口
    def to_minmize_window(self):
        self.ui.showMinimized()

    # 登录
    def login(self):
        self.ui.information.clear()
        SI.USER = self.ui.username.text().strip()
        password = self.ui.password.text().strip()

        str = "select * from user where username = '%s' and password = '%s'" % (SI.USER, password)
        result = dt.selectDB(str)
        if len(result) == 1:
            print("success")
        else:
            print("登录失败")
            self.ui.information.setText("用户名或密码错误")

    # 忘记密码
    def forgetpwd(self):
        print("忘记密码")

    # 注册
    def to_register(self):
        SI.registerWin = Register()
        SI.registerWin.ui.show()
        print("去注册页面")
        # 显示注册窗口,关闭原窗口
        self.ui.hide()


if __name__ == "__main__":
    app = QApplication([])
    SI.loginWindow = Login()
    SI.loginWindow.ui.show()
    app.exec_()

效果图
登录成功
人脸识别学生考勤系统【2】--登录_第2张图片
登录失败
人脸识别学生考勤系统【2】--登录_第3张图片

你可能感兴趣的:(人脸识别学生考勤系统,qt,ui,数据库)