手把手教你开发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实体类

"""
    图书实体类
    作者 : 小锋老师
    官网 : www.python222.com
"""


# 图书类
class Book:
    # 编号 主键ID
    id = None
    # 图书名称
    bookName = None
    # 图书作者
    author = None
    # 作者性别
    sex = '男'
    # 图书价格
    price = None
    # 图书类别ID
    bookTypeId = -1
    # 图书类别名称
    bookTypeName = None
    # 图书类别描述
    bookDesc = None

    def __init__(self, bookName, author, bookTypeId):
        self.bookName = bookName
        self.author = author
        self.bookTypeId = bookTypeId

    @staticmethod
    def my_constructor(bookName, author, sex, price, bookTypeId, bookDesc):
        obj = Book(bookName, author, bookTypeId)
        obj.sex = sex
        obj.price = price
        obj.bookDesc = bookDesc
        return obj

bookDao.py里新建add方法:

def add(book: Book):
    """
    图书添加
    :param bookType: 图书实体
    :return: 返回执行的记录条数
    """
    con = None
    try:
        con = dbUtil.getCon()
        cursor = con.cursor()
        cursor.execute(
            f"insert into t_book values(null,'{book.bookName}','{book.author}','{book.sex}',{book.price},{book.bookTypeId},'{book.bookDesc}')")
        return cursor.rowcount
    except Exception as e:
        print(e)
        con.rollback()
        return 0
    finally:
        dbUtil.closeCon(con)

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

    def add(self):
        """
        添加图书
        :return:
        """
        bookName = self.bookNameInput.text()
        if bookName.strip() == "":
            QMessageBox.warning(None, '系统提示', '图书名称不能为空!')
            return
        author = self.authorInput.text()
        if author.strip() == "":
            QMessageBox.warning(None, '系统提示', '作者不能为空!')
            return
        sex = ""
        if self.manRadio.isChecked():
            sex = "男"
        else:
            sex = "女"
        price = self.priceInput.text()
        if price.strip() == "":
            QMessageBox.warning(None, '系统提示', '价格不能为空!')
            return
        bookTypeId = self.bookTypeComboBox.currentData()
        if bookTypeId == -1:
            QMessageBox.warning(None, '系统提示', '请选择图书类别!')
            return
        bookDesc = self.bookDescInput.toPlainText()
        book = Book.my_constructor(bookName, author, sex, price, bookTypeId, bookDesc)
        if bookDao.add(book) > 0:
            QMessageBox.information(None, '系统提示', '添加成功!')
            self.reset()
        else:
            QMessageBox.warning(None, '系统提示', '添加失败!')

再加个重置表单方法:

    def reset(self):
        """
        重置表单
        :return:
        """
        self.bookNameInput.setText("")
        self.authorInput.setText("")
        self.manRadio.setChecked(True)
        self.priceInput.setText("")
        self.bookTypeComboBox.setCurrentIndex(0)
        self.bookDescInput.setPlainText("")

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

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

绑定添加按钮事件

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

运行测试:

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

你可能感兴趣的:(Python,pyqt,pyqt6,pyqt实战,pyqt教程,pyqt6教程)