锋哥原创的PyQt6图书管理系统视频教程:
PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频,包括:PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~、第2讲 登录功能UI设计实现、第3讲 数据库操作工具包dbUtil.py封装等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV18t4y1R7Qp/首先bookTypeDao.py ,写一个update方法:
def update(bookType: BookType):"""图书类别修改:param bookType: 图书类别实体:return: 返回执行的记录条数"""con = Nonetry:con = dbUtil.getCon()cursor = con.cursor()cursor.execute(f"update t_booktype set bookTypeName='{bookType.bookTypeName}',bookTypeDesc='{bookType.bookTypeDesc}' where id={bookType.id}")return cursor.rowcountexcept Exception as e:print(e)con.rollback()return 0finally:dbUtil.closeCon(con)
我们实现修改的时候,传递到update方法的bookType对象,这个对象里,是包括所有属性的。所以我们BookType类里,需要写一个重载的构造方法,在Python里面,可以通过@staticmethod,静态方法,返回一个实例化过的对象。
@staticmethoddef my_constructor(id, bookTypeName, bookTypeDesc):obj = BookType(bookTypeName, bookTypeDesc)obj.id = idreturn obj
然后我们bookTypeManage.py的Ui_Form类里实现下槽函数update
def update(self):"""更新表单:return:"""id = self.idInput.text()if id.strip() == "":QMessageBox.information(None, '系统提示', '请选中您需要编辑的那行数据!')returnbookTypeName = self.bookTypeNameInput.text()if bookTypeName.strip() == "":QMessageBox.information(None, '系统提示', '请输入图书类别名称!')returnbookTypeDesc = self.bookTypeDescInput.toPlainText()bookType = BookType.my_constructor(id, bookTypeName, bookTypeDesc)if bookTypeDao.update(bookType) > 0:QMessageBox.information(None, '系统提示', '修改成功!')self.initTable()else:QMessageBox.warning(None, '系统提示', '修改失败!')
最后再加下按钮点击事件:
# 修改按钮点击事件self.modifyBtn.clicked.connect(self.update)
运行测试: