首页 > 编程知识 正文

asp图书管理系统源码,程序员教程第5版电子书

时间:2023-05-05 00:46:27 阅读:140739 作者:4987

基于PyQT5的图书管理系统

用pycharm导入项目,配置好python环境,安装一下pyqt5的依赖包,用navicate连接本地Mysql数据库,手工创建数据库(名字在代码里面有),然后执行一下sql语句,最后运行程序,就可以自动出来界面

项目大概结构

管理员登录界面

import sysimport pymysqlimport my_dbfrom PyQt5.QtCore import Qtfrom PyQt5.QtGui import QPixmap, QFont, QIconfrom PyQt5.QtWidgets import QWidget, QApplication, QLabel, QDesktopWidget, QHBoxLayout, QFormLayout, QPushButton, QLineEdit, QMessageBoximport Manageclass LoginForm(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): """ 初始化UI :return: """ self.setObjectName("loginWindow") self.setStyleSheet('#loginWindow{background-color:white}') self.setFixedSize(650, 400) self.setWindowTitle("图书管理管理系统") # 添加顶部logo图片 pixmap = QPixmap("img/header.png") scared_pixmap = pixmap.scaled(650, 140) label = QLabel(self) label.setPixmap(scared_pixmap) # 绘制顶部文字 lbl_logo = QLabel(self) lbl_logo.setStyleSheet("QWidget{color:white;font-weight:600;background: transparent;font-size:30px;}") lbl_logo.setFont(QFont("Microsoft YaHei")) lbl_logo.move(150, 50) lbl_logo.setAlignment(Qt.AlignCenter) lbl_logo.raise_() # 登录表单内容部分 login_widget = QWidget(self) login_widget.move(0, 140) login_widget.setGeometry(0, 140, 650, 260) hbox = QHBoxLayout() # 添加左侧logo logolb = QLabel(self) logopix = QPixmap("static/logo.png") logopix_scared = logopix.scaled(100, 100) logolb.setPixmap(logopix_scared) logolb.setAlignment(Qt.AlignCenter) hbox.addWidget(logolb, 1) # 添加右侧表单 fmlayout = QFormLayout() lbl_workerid = QLabel("用户名") lbl_workerid.setFont(QFont("Microsoft YaHei")) self.led_workerid = QLineEdit() self.led_workerid.setFixedWidth(270) self.led_workerid.setFixedHeight(38) lbl_pwd = QLabel("密码") lbl_pwd.setFont(QFont("Microsoft YaHei")) self.led_pwd = QLineEdit() self.led_pwd.setEchoMode(QLineEdit.Password) self.led_pwd.setFixedWidth(270) self.led_pwd.setFixedHeight(38) btn_login = QPushButton("登录") btn_login.setFixedWidth(270) btn_login.setFixedHeight(40) btn_login.setFont(QFont("Microsoft YaHei")) btn_login.setObjectName("login_btn") btn_login.setStyleSheet("#login_btn{background-color:#2c7adf;color:#fff;border:none;border-radius:4px;}") btn_login.clicked.connect(self.login_check) fmlayout.addRow(lbl_workerid, self.led_workerid) fmlayout.addRow(lbl_pwd, self.led_pwd) fmlayout.addWidget(btn_login) hbox.setAlignment(Qt.AlignCenter) # 调整间距 fmlayout.setHorizontalSpacing(20) fmlayout.setVerticalSpacing(12) hbox.addLayout(fmlayout, 2) login_widget.setLayout(hbox) self.center() self.show() def login_check(self): """ 登录认证 :return: """ global is_passed check = 0 phone = self.led_workerid.text() password = self.led_pwd.text() conn = pymysql.connect(host=my_db.host, user=my_db.user, db=my_db.db, password=my_db.password) cursor = conn.cursor() sql = "select * from user where phone=%s and password=%s"%(phone, password) try: print(sql) cursor.execute(sql) data = cursor.fetchall() except Exception as e: conn.rollback() print('数据库操作失败', e) if data.__len__() > 0: check = 1 # 检查通过 QMessageBox.about(self, '成功', '登录成功,即将跳转!') if check == 0: QMessageBox.warning(self, "错误", "用户名或密码错误", QMessageBox.Yes) else: is_passed = 1 self.close() def center(self): qr = self.frameGeometry() cp = QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft())if __name__ == "__main__": is_passed = 0 # 判断是否登录成功,成功后为1 app = QApplication(sys.argv) ex = LoginForm() ex.show() app.exec_() if (is_passed is 0): sys.exit(0) app2 = QApplication(sys.argv) Manage.start() sys.exit(app2.exec_()) 操作首页

图书查询


借书

还书

添加借书证

图书入库,可以单本入库,可以多本入库




下载地址

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。