基于PyQT5的图书管理系统(含文档,源码,安装部署简单)

基于PyQT5的图书管理系统

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

项目大概结构

在这里插入图片描述

管理员登录界面

在这里插入图片描述

import sys
import pymysql
import my_db
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap, QFont, QIcon
from PyQt5.QtWidgets import QWidget, QApplication, QLabel, QDesktopWidget, QHBoxLayout, QFormLayout, \
    QPushButton, QLineEdit, QMessageBox
import Manage

class 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_())

操作首页

在这里插入图片描述

图书查询

在这里插入图片描述
在这里插入图片描述

借书

在这里插入图片描述

还书

在这里插入图片描述

添加借书证

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载地址

  • 5
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
【资源说明】 基于Pyqt5+Mysql开发的餐饮管理系统+数据库sql+项目说明(毕设源码).zip 开发功能如下: 一级功能 二级子功能 功能详述 员工管理 新增员工 添加新员工,填写员工基本信息。 修改员工 修改员工信息,包括姓名、联系方式、籍贯、等 删除员工 删除员工信息 查询员工 按照员工编号、姓名、性别等条件查询员工信息 员工登录 员工通过输入用户名和密码登录系统 菜品管理 新增菜品 添加新菜品,填写菜品基本信息、价格、数量、辣度等 修改菜品 修改菜品信息,包括名称、价格、辣度、数量、是否推荐等 删除菜品 删除菜品信息,同时删除与该菜品相关的订单信息 查询菜品列表 按照菜品编号、名称、价格等条件查询菜品信息 查看菜品详情 查看菜品详细信息,包括菜品名称、价格等 查询菜品销量 统计菜品销量信息。 点餐功能 点餐菜品 选择菜品以及数量进行下单 点餐付款 对下达订单进行付款 订单管理 删除订单 删除数据库中的订单 修改订单 修改数据库中的订单 新增订单 添加数据库中的订单 客户管理 新增客户 添加新客户,填写客户基本信息和联系方式 修改客户 修改客户信息,包括姓名、联系方式、身份证号、籍贯等 删除客户 删除客户信息。 查询客户列表 按照客户编号、姓名、性别等条件查询客户信息 客户登录 客户通过输入手机号和密码登录系统 库存管理 修改库存 修改库存信息,包括库存名称、数量等 删除库存 删除库存信息。 查询库存 按照库存编号、名称、等条件查询库存信息 新增库存 添加新库存,填写库存基本信息,包括库存名称、数量、存放位置等 报表生成功能 生成销售报表 生成统计销售额、销售量、菜品销售排名等信息的报表 生成收入报表 生成统计利润、成本等信息的报表 生成订单报表 生成统计订单数量等信息的报表 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lbxoqy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值