手把手教你开发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/首先我们bookTypeDao里添加list方法,因为还有可能是带图书类别名称一起搜索,所以加上类别名称搜索条件。

def list(s_bookTypeName: str):
    """
    根据条件查询图书类别信息
    :return:返回查询的图书类别信息列表
    """
    con = None
    try:
        con = dbUtil.getCon()
        cursor = con.cursor()
        sql = "select * from t_booktype where 1=1"
        if s_bookTypeName.strip() != '':
            sql += " and bookTypeName like '%" + s_bookTypeName + "%'"
        print(sql)
        cursor.execute(sql)
        return cursor.fetchall()
    except Exception as e:
        print(e)
        con.rollback()
        return None
    finally:
        dbUtil.closeCon(con)

然后是bookTypeManage.py的Ui_Form类里,加上initTable()方法,用来实现初始化表格

    def initTable(self):
        """
        根据条件初始化数据表格
        :return:
        """
        # 获取搜索表单里的图书类别名称
        s_bookTypeName = self.s_bookTypeNameInput.text()
        result = bookTypeDao.list(s_bookTypeName)
        row = 0
        if result:
            row = len(result)
        self.bookTypeTable.setColumnCount(3)
        self.bookTypeTable.setRowCount(row)
        self.bookTypeTable.verticalHeader().setVisible(False)  # 隐藏垂直标题 序号
        self.bookTypeTable.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)  # 禁止编辑单元格
        self.bookTypeTable.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
        self.bookTypeTable.setHorizontalHeaderLabels(['编号', '图书类别名称', '图书类别描述'])
        self.bookTypeTable.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)  # 列头自适应
        self.bookTypeTable.setSelectionBehavior(
            QAbstractItemView.SelectionBehavior.SelectRows)  # 设置选择行为,以行为单位

        for i in range(row):
            for j in range(3):
                data = QTableWidgetItem(str(result[i][j]))
                self.bookTypeTable.setItem(i, j, data)

Ui_Form构造方法里,最后加上initTable()

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书类别信息表格数据显示以及搜索实现_第1张图片

搜索按钮也加上initTable的点击事件绑定

# 绑定搜索按钮点击事件
        self.searchBtn.clicked.connect(self.initTable)

运行测试:

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书类别信息表格数据显示以及搜索实现_第2张图片

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书类别信息表格数据显示以及搜索实现_第3张图片

你可能感兴趣的:(Python,python,pyqt,pyqt6)