PyQt5搭建图书馆管理系统(11)——窗口信号与槽以及主窗口循环(项目完)

管理员主页信号与槽

窗口内信号与槽

在管理员主页代码的setUpUI中,可以看到如下代码

1
2
3
self.addBookButton.clicked.connect(self.addBookButtonClicked)
self.dropBookButton.clicked.connect(self.dropBookButtonClicked)
self.userManageButton.clicked.connect(self.userManage)

这是Qt自带的信号与槽机制,也就是QPushButton点击触发,分别是

  • 添加书籍按钮点击触发弹出添加书籍对话框
  • 淘汰书籍按钮点击触发弹出淘汰书籍对话框
  • 用户管理按钮点击弹出用户管理对话框
阅读更多

PyQt5搭建图书馆管理系统(8)——借书/还书功能

借书功能实现

分析

本来借书的信息都是应该有RFID识别得到的,但是作为大作业,只能让用户输入信息了,但是书名之类的都不唯一,所以采取了与淘汰书籍一样的操作——让用户输入书号,自动匹配书本信息,然后确认借阅

借阅时,需要处理的逻辑如下:

  • 用户输入的书号存在,就匹配信息给用户
  • 不存在就点击借阅,给出警告
  • 借阅书籍数已经达到上限5本 ,给出警告
  • 不允许借阅同样的书
  • 更新Book表信息的借阅次数,剩余可借阅书数
  • User_Book表插入记录
  • 借阅成功给出提示
阅读更多

PyQt5搭建图书馆管理系统(7)——用户管理

分析

对于用户管理,本来应该包含添加用户,删除用户等操作的,但是为了实现简单,添加用户就用注册代替了,所以所谓用户管理,只是实现了用户的删除操作

为了删除用户的同时保护数据库的完整性和约束,需要进行以下操作

  • User表删除该用户
  • 将该用户所借阅的所有书籍全部归还
阅读更多

PyQt5搭建图书馆管理系统(6)——书籍信息查询实现

分析

从数据库的设计可以看到,在这里我们只需要使用Book表的数据,就可以实现书籍信息的查询了

在这个功能的实现上,可以说花了我比较大的心思了,主要实现了这些功能:

  • 动态刷新,也就是说当管理员删除或者添加书籍,用户借阅归还书籍的时候动态刷新这个TableView
  • 模糊匹配
  • 按书名,作者,书号,出版社查询
  • 跳转页,翻页
阅读更多

PyQt5搭建图书馆管理系统(4)——管理员主页设计

分析

在管理员主页,为了完成初步的功能,即添加书本,淘汰书本,查看库存,我们需要设计以下:

  • 一个添加书本的Dialog,通过一个button启用
  • 一个淘汰书本的Dialog,通过一个button启用
  • 一个查看库存的Table, 一开始打算用一个button启用的,后来觉得直接放主页也挺好的,所以并没有用button启用(虽然依然放在设计中)
阅读更多