图书管理登录html,PyQt5搭建图书馆管理系统(3)——登录页面设计

import sys

from PyQt5.QtWidgets import *

from PyQt5.QtGui import *

from PyQt5.QtCore import *

import qdarkstyle

import hashlib

from PyQt5.QtSql import *

class SignInWidget(QWidget):

is_admin_signal = pyqtSignal()

is_student_signal = pyqtSignal(str)

def __init__(self):

super(SignInWidget, self).__init__()

self.resize(900, 600)

self.setWindowTitle("欢迎使用图书馆管理系统")

self.setUpUI()

def setUpUI(self):

self.Vlayout = QVBoxLayout(self)

self.Hlayout1 = QHBoxLayout()

self.Hlayout2 = QHBoxLayout()

self.formlayout = QFormLayout()

self.label1 = QLabel("学号: ")

labelFont = QFont()

labelFont.setPixelSize(18)

lineEditFont = QFont()

lineEditFont.setPixelSize(16)

self.label1.setFont(labelFont)

self.lineEdit1 = QLineEdit()

self.lineEdit1.setFixedHeight(32)

self.lineEdit1.setFixedWidth(180)

self.lineEdit1.setFont(lineEditFont)

self.lineEdit1.setMaxLength(10)

self.formlayout.addRow(self.label1, self.lineEdit1)

self.label2 = QLabel("密码: ")

self.label2.setFont(labelFont)

self.lineEdit2 = QLineEdit()

self.lineEdit2.setFixedHeight(32)

self.lineEdit2.setFixedWidth(180)

self.lineEdit2.setMaxLength(16)

# 设置验证

reg = QRegExp("PB[0~9]{8}")

pValidator = QRegExpValidator(self)

pValidator.setRegExp(reg)

self.lineEdit1.setValidator(pValidator)

reg = QRegExp("[a-zA-z0-9]+$")

pValidator.setRegExp(reg)

self.lineEdit2.setValidator(pValidator)

passwordFont = QFont()

passwordFont.setPixelSize(10)

self.lineEdit2.setFont(passwordFont)

self.lineEdit2.setEchoMode(QLineEdit.Password)

self.formlayout.addRow(self.label2, self.lineEdit2)

self.signIn = QPushButton("登 录")

self.signIn.setFixedWidth(80)

self.signIn.setFixedHeight(30)

self.signIn.setFont(labelFont)

self.formlayout.addRow("", self.signIn)

self.label = QLabel("欢迎使用图书馆管理系统")

fontlabel = QFont()

fontlabel.setPixelSize(30)

self.label.setFixedWidth(390)

# self.label.setFixedHeight(80)

self.label.setFont(fontlabel)

self.Hlayout1.addWidget(self.label, Qt.AlignCenter)

self.widget1 = QWidget()

self.widget1.setLayout(self.Hlayout1)

self.widget2 = QWidget()

self.widget2.setFixedWidth(300)

self.widget2.setFixedHeight(150)

self.widget2.setLayout(self.formlayout)

self.Hlayout2.addWidget(self.widget2, Qt.AlignCenter)

self.widget = QWidget()

self.widget.setLayout(self.Hlayout2)

self.Vlayout.addWidget(self.widget1)

self.Vlayout.addWidget(self.widget, Qt.AlignTop)

self.signIn.clicked.connect(self.signInCheck)

self.lineEdit2.returnPressed.connect(self.signInCheck)

self.lineEdit1.returnPressed.connect(self.signInCheck)

def signInCheck(self):

studentId = self.lineEdit1.text()

password = self.lineEdit2.text()

if (studentId == "" or password == ""):

print(QMessageBox.warning(self, "警告", "学号和密码不可为空!", QMessageBox.Yes, QMessageBox.Yes))

return

# 打开数据库连接

db = QSqlDatabase.addDatabase("QSQLITE")

db.setDatabaseName('./db/LibraryManagement.db')

db.open()

query = QSqlQuery()

sql = "SELECT * FROM user WHERE StudentId='%s'" % (studentId)

query.exec_(sql)

db.close()

hl = hashlib.md5()

hl.update(password.encode(encoding='utf-8'))

if (not query.next()):

print(QMessageBox.information(self, "提示", "该账号不存在!", QMessageBox.Yes, QMessageBox.Yes))

else:

if (studentId == query.value(0) and hl.hexdigest() == query.value(2)):

# 如果是管理员

if (query.value(3)==1):

self.is_admin_signal.emit()

else:

self.is_student_signal.emit(studentId)

else:

print(QMessageBox.information(self, "提示", "密码错误!", QMessageBox.Yes, QMessageBox.Yes))

return

if __name__ == "__main__":

app = QApplication(sys.argv)

app.setWindowIcon(QIcon("./images/MainWindow_1.png"))

app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())

mainMindow = SignInWidget()

mainMindow.show()

sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值