手把手教你开发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/首先搜索模块,图书类别下拉框初始化下

定义initBookTypeListComboBox方法

    def initBookTypeListComboBox(self):"""初始化下拉框数据:return:"""bookTypeList = bookTypeDao.list("")  # 获取所有图书类别信息self.s_bookTypeComboBox.addItem("请选择图书类别...", -1)for bookType in bookTypeList:self.s_bookTypeComboBox.addItem(bookType[1], bookType[0])

构造方法里调用

bookDao里定义list方法:

def list(s_book: Book):"""根据条件查询图书信息:return:返回查询的图书信息列表"""con = Nonetry:con = dbUtil.getCon()cursor = con.cursor()sql = "SELECT t.id AS id,bookName,author,bookTypeName,sex,price,bookDesc FROM t_book AS t ,t_booktype AS tk WHERE t.`bookTypeId`=tk.`id`"if s_book != None:if s_book.bookName.strip() != '':sql += " and t.bookName like '%" + s_book.bookName + "%'"if s_book.author.strip() != '':sql += " and t.author like '%" + s_book.author + "%'"if s_book.bookTypeId != -1:sql += " and t.bookTypeId = " + str(s_book.bookTypeId)print(sql)cursor.execute(sql)return cursor.fetchall()except Exception as e:print(e)con.rollback()return Nonefinally:dbUtil.closeCon(con)

bookManage.py里再定义initTable方法

    def initTable(self):"""根据条件初始化数据表格:return:"""bookName = self.s_nameInput.text()author = self.s_authorInput.text()bookTypeId = self.s_bookTypeComboBox.currentData()s_book = Book(bookName, author, bookTypeId)result = bookDao.list(s_book)row = 0if result:row = len(result)self.bookTable.setColumnCount(7)self.bookTable.setRowCount(row)self.bookTable.verticalHeader().setVisible(False)  # 隐藏垂直标题 序号self.bookTable.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)  # 禁止编辑单元格self.bookTable.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)self.bookTable.setHorizontalHeaderLabels(['编号', '图书名称', '图书作者', '图书类别', '作者性别', '图书价格', '图书描述'])self.bookTable.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)  # 列头自适应self.bookTable.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)  # 设置选择行为,以行为单位for i in range(row):for j in range(7):data = QTableWidgetItem(str(result[i][j]))self.bookTable.setItem(i, j, data)

构造方法里调用

搜索按钮绑定事件

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

测试:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/464252.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钓鱼邮件便捷发送工具(GUI)

简介 本程序利用Python语言编写,使用Tkinter实现图形化界面,可使用Pyinstaller进行exe打包,程序主界面截图如下: 功能 支持腾讯企业邮、网易企业邮、阿里企业邮、自建邮服SMTP授权账号(其他邮服,可在自建…

leetcode(二分查找)35.搜索插入位置(C++详细解释)DAY6)

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。…

hook函数——useRef

useRef useRef 是一个 React Hook,它能帮助引用一个不需要渲染的值。也就是说useRef可以存储一个值,但是不被组件渲染,仅仅只是引用,主要包括两个方面,例如使用ref引用一个值,使用ref引用一个dom节点&…

国产光耦2024:发展机遇与挑战全面解析

随着科技的不断进步,国产光耦在2024年正面临着前所未有的机遇与挑战。本文将深入分析国产光耦行业的发展现状,揭示其在技术创新、市场需求等方面的机遇和挑战。 国产光耦技术创新的机遇: 国产光耦作为光电器件的重要组成部分,其技…

知识价值2-什么是IDE?新手用哪个IDE比较好?

IDE是集成开发环境(Integrated Development Environment)的缩写,是一种软件应用程序,旨在提供集成的工具集,以方便开发人员进行软件开发。IDE通常包括代码编辑器、编译器、调试器和其他工具,以支持软件开发…

OpenCV-35 查找轮廓

一、 什么是图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线,轮廓在形状分析和物体的检测识别中很有用。 用于图形分析物体的识别和检测 注意点: 为了检测的准确性,需要先对图像进行二值化或Canny操作。画轮廓时会修改输入的图像&a…

01-Spring实现重试和降级机制

主要用于在模块调用中,出现失败、异常情况下,仍需要进行重复调用。并且在最终调用失败时,可以采用降级措施,返回一般结果。 1、重试机制 我们采用spring 提供的retry 插件,其原理采用aop机制,所以需要额外…

架构(十二)动态Excel

一、引言 作者最近的平台项目需要生成excel,excel的导入导出是常用的功能,但是作者想做成动态的,不要固定模板,那就看看怎么实现。 二、后端 先捋一下原理,前后端的交互看起来是制定好的接口,其实根本上是…

【数据结构和算法】--- 基于c语言排序算法的实现(2)

目录 一、交换排序1.1 冒泡排序1.2 快速排序1.2.1 hoare法1.2.2 挖坑法1.2.3 前后指针法 1.3 快速排序优化1.3.1 三数取中法选key1.3.2 递归到小的子区间使用插入排序 1.4 快排非递归版 二、归并排序2.1 归并排序2.1.1 递归版2.1.2 非递归版 一、交换排序 基本思想&#xff1a…

【java】Hibernate访问数据库

一、Hibernate访问数据库案例 Hibernate 是一个在 Java 社区广泛使用的对象关系映射(ORM)工具。它简化了 Java 应用程序中数据库操作的复杂性,并提供了一个框架,用于将对象模型数据映射到传统的关系型数据库。下面是一个简单的使…

Redisson分布式锁 原理 + 运用 记录

Redisson 分布式锁 简单入门 pom <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.13.6</version></dependency>配置类 package com.hmdp.config;import org.redisson.Redisson;…

无人机飞控算法原理基础研究,多旋翼无人机的飞行控制算法理论详解,无人机飞控软件架构设计

多旋翼无人机的飞行控制算法主要涉及到自动控制器、捷联式惯性导航系统、卡尔曼滤波算法和飞行控制PID算法等部分。 自动控制器是无人机飞行控制的核心部分&#xff0c;它负责接收来自无人机传感器和其他系统的信息&#xff0c;并根据预设的算法和逻辑&#xff0c;对无人机的姿…