当前位置:   article > 正文

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书添加代码逻辑实现

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书添加代码逻辑实现

锋哥原创的PyQt6图书管理系统视频教程:

PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频,包括:PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~、第2讲 登录功能UI设计实现、第3讲 数据库操作工具包dbUtil.py封装等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV18t4y1R7Qp/首先我们新建BookModel.py,在建Book实体类

  1. """
  2. 图书实体类
  3. 作者 : 小锋老师
  4. 官网 : www.python222.com
  5. """
  6. # 图书类
  7. class Book:
  8. # 编号 主键ID
  9. id = None
  10. # 图书名称
  11. bookName = None
  12. # 图书作者
  13. author = None
  14. # 作者性别
  15. sex = '男'
  16. # 图书价格
  17. price = None
  18. # 图书类别ID
  19. bookTypeId = -1
  20. # 图书类别名称
  21. bookTypeName = None
  22. # 图书类别描述
  23. bookDesc = None
  24. def __init__(self, bookName, author, bookTypeId):
  25. self.bookName = bookName
  26. self.author = author
  27. self.bookTypeId = bookTypeId
  28. @staticmethod
  29. def my_constructor(bookName, author, sex, price, bookTypeId, bookDesc):
  30. obj = Book(bookName, author, bookTypeId)
  31. obj.sex = sex
  32. obj.price = price
  33. obj.bookDesc = bookDesc
  34. return obj

bookDao.py里新建add方法:

  1. def add(book: Book):
  2. """
  3. 图书添加
  4. :param bookType: 图书实体
  5. :return: 返回执行的记录条数
  6. """
  7. con = None
  8. try:
  9. con = dbUtil.getCon()
  10. cursor = con.cursor()
  11. cursor.execute(
  12. f"insert into t_book values(null,'{book.bookName}','{book.author}','{book.sex}',{book.price},{book.bookTypeId},'{book.bookDesc}')")
  13. return cursor.rowcount
  14. except Exception as e:
  15. print(e)
  16. con.rollback()
  17. return 0
  18. finally:
  19. dbUtil.closeCon(con)

bookAdd.py的Ui_Form里,新建add方法:

  1. def add(self):
  2. """
  3. 添加图书
  4. :return:
  5. """
  6. bookName = self.bookNameInput.text()
  7. if bookName.strip() == "":
  8. QMessageBox.warning(None, '系统提示', '图书名称不能为空!')
  9. return
  10. author = self.authorInput.text()
  11. if author.strip() == "":
  12. QMessageBox.warning(None, '系统提示', '作者不能为空!')
  13. return
  14. sex = ""
  15. if self.manRadio.isChecked():
  16. sex = "男"
  17. else:
  18. sex = "女"
  19. price = self.priceInput.text()
  20. if price.strip() == "":
  21. QMessageBox.warning(None, '系统提示', '价格不能为空!')
  22. return
  23. bookTypeId = self.bookTypeComboBox.currentData()
  24. if bookTypeId == -1:
  25. QMessageBox.warning(None, '系统提示', '请选择图书类别!')
  26. return
  27. bookDesc = self.bookDescInput.toPlainText()
  28. book = Book.my_constructor(bookName, author, sex, price, bookTypeId, bookDesc)
  29. if bookDao.add(book) > 0:
  30. QMessageBox.information(None, '系统提示', '添加成功!')
  31. self.reset()
  32. else:
  33. QMessageBox.warning(None, '系统提示', '添加失败!')

再加个重置表单方法:

  1. def reset(self):
  2. """
  3. 重置表单
  4. :return:
  5. """
  6. self.bookNameInput.setText("")
  7. self.authorInput.setText("")
  8. self.manRadio.setChecked(True)
  9. self.priceInput.setText("")
  10. self.bookTypeComboBox.setCurrentIndex(0)
  11. self.bookDescInput.setPlainText("")

图书添加UI模块,我们让男默认选中

  1. # 设置默认选中
  2. self.manRadio.setChecked(True)

绑定添加按钮事件

  1. # 添加按钮事件
  2. self.addBtn.clicked.connect(self.add)

运行测试:

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/105878
推荐阅读
相关标签
  

闽ICP备14008679号