手把手教你开发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/我们先建下 图书表和图书列表表,因为这两个表是主外键关联的,存在多对一的关系,所以我们一起建了。


CREATE TABLE `t_book` (`id` int(11) NOT NULL AUTO_INCREMENT,`bookName` varchar(20) DEFAULT NULL,`author` varchar(20) DEFAULT NULL,`sex` varchar(10) DEFAULT NULL,`price` float DEFAULT NULL,`bookTypeId` int(11) DEFAULT NULL,`bookDesc` varchar(1000) DEFAULT NULL,PRIMARY KEY (`id`),KEY `bookTypeId` (`bookTypeId`),CONSTRAINT `t_book_ibfk_1` FOREIGN KEY (`bookTypeId`) REFERENCES `t_booktype` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;/*Data for the table `t_book` */insert  into `t_book`(`id`,`bookName`,`author`,`sex`,`price`,`bookTypeId`,`bookDesc`) values (1,'java编程思想2','xx','男',100,1,''),(2,'python编程','哈哈','女',18,1,'111');/*Table structure for table `t_booktype` */DROP TABLE IF EXISTS `t_booktype`;CREATE TABLE `t_booktype` (`id` int(11) NOT NULL AUTO_INCREMENT,`bookTypeName` varchar(20) DEFAULT NULL,`bookTypeDesc` varchar(1000) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;/*Data for the table `t_booktype` */insert  into `t_booktype`(`id`,`bookTypeName`,`bookTypeDesc`) values (1,'计算机类2','计算机相关图书2'),(5,'文学类','。。。');

再新建下图书类别实体,entity下新建BookTypeModel,里面新建BookType类:

"""图书类别实体类作者 : 小锋老师官网 : www.python222.com
"""# 图书类别类
class BookType:# 编号 主键IDid = None# 图书类别名称bookTypeName = None# 图书类别描述bookTypeDesc = Nonedef __init__(self, bookTypeName, bookTypeDesc):self.bookTypeName = bookTypeNameself.bookTypeDesc = bookTypeDesc

首先我们实现重置功能:

定义reset方法:

    def reset(self):"""重置:return:"""self.bookTypeNameInput.setText("")self.bookTypeDescInput.setPlainText("")

重置按钮绑定下点击事件,关联reset槽函数

# 重置按钮点击事件self.resetBtn.clicked.connect(self.reset)

再实现下添加功能;

dao下新建bookTypeDao.py,里面新建add方法:

"""图书类别数据访问对象作者 : 小锋老师官网 : www.python222.com
"""
from entity.BookTypeModel import BookType
from util import dbUtildef add(bookType: BookType):"""图书类别添加:param bookType: 图书类别实体:return: 返回执行的记录条数"""con = Nonetry:con = dbUtil.getCon()cursor = con.cursor()cursor.execute(f"insert into t_booktype values(null,'{bookType.bookTypeName}','{bookType.bookTypeDesc}')")return cursor.rowcountexcept Exception as e:print(e)con.rollback()return 0finally:dbUtil.closeCon(con)

bookTypeAdd.py的Ui_Form类里,新建下add方法:

    def add(self):"""添加图书类别:return:"""bookTypeName = self.bookTypeNameInput.text()bookTypeDesc = self.bookTypeDescInput.toPlainText()if bookTypeName.strip() == "":QMessageBox.warning(None, '系统提示', '图书类别名称不能为空')else:bookType = BookType(bookTypeName, bookTypeDesc)if bookTypeDao.add(bookType) > 0:QMessageBox.information(None, '系统提示', '添加成功')self.reset()else:QMessageBox.warning(None, '系统提示', '添加失败')

添加按钮绑定add事件:

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

最后是测试,OK;

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

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

相关文章

大模型增量预训练新技巧:解决灾难性遗忘

大家好,目前不少开源模型在通用领域具有不错的效果,但由于缺乏领域数据,往往在一些垂直领域中表现不理想,这时就需要增量预训练和微调等方法来提高模型的领域能力。 但在领域数据增量预训练或微调时,很容易出现灾难性…

c++重载、隐藏和覆盖

重载 函数名字相同&#xff0c;但参数列表或者返回值不同一组函数要重载必须处在同一作用域中 class Base { public:Base(int data0):m_a(data){}void show(){cout<<"Base::show()"<<endl;}void show(int){cout<<"Base:show(int)"<&l…

STM32--SPI通信协议(2)W25Q64简介

一、W25Q64简介 1、W25Qxx中的xx是不同的数字&#xff0c;表示了这个芯片不同的存储容量&#xff1b; 2、存储器分为易失性与非易失性&#xff0c;主要区别是存储的数据是否是掉电不丢失&#xff1a; 易失性存储器&#xff1a;SRAM、DRAM&#xff1b; 非易失性存储器&#xff…

YOLOv8进阶 | 如何用yolov8训练自己的数据集(以安全帽佩戴检测举例)

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。YOLOv8是一种目标检测算法&#xff0c;它是YOLO&#xff08;You Only Look Once&#xff09;系列算法的最新版本。本节课就带领大家如何基于YOLOv8来训练自己的目标检测模型&#xff0c;本次作者就以安全帽佩戴检测为案例进…

C#(C Sharp)学习笔记_前言及Visual Studio Code配置C#运行环境【一】

前言 这可以说是我第一次正式的踏入C#的学习道路&#xff0c;我真没想过我两年前是怎么跳过C#去学Unity3D游戏开发的&#xff08;当然了&#xff0c;游戏开发肯定是没有成功的&#xff0c;都是照搬代码&#xff09;。而现在&#xff0c;我真正地学习一下C#&#xff0c;就和去年…

2024亿级密码泄露事件:涉及7084万个邮箱账号

近日&#xff0c;热门漏洞通知服务HIBP所有者特洛伊・亨特&#xff08;Troy Hunt&#xff09;发布博文&#xff0c;表示在暗网上发现了超大规模的泄漏数据集&#xff0c;被称为Naz.API列表。该数据集包含7084万个电子邮件地址以及超过1亿个密码凭证&#xff0c;至少有超过40万 …

idea创建spring项目

一、环境 window10 IDEA 2022.2.3 maven-3.8.6 二、创建spring项目 1、新建Maven项目 File -> New -> Project 然后如下图选中Maven Archetype&#xff0c;在Archetype&#xff0c;选中maven-archetype-webapp&#xff0c;点击Create 2、配置maven 默认是使用IDEA内…

CCReportAdv的一个配置技巧

关于CCReportAdv CCReportAdv是我们推出的基于经典WinCC/TIA WinCC Prof.的一款报表控件。它支持导入Excel模板&#xff0c;可以灵活生成美观的数据报表。 配置示例 CCReportAdv功能非常强大。通过简单的配置就可以生成客户需要的报表。以下面这款报表为例&#xff0c;参见下面…

基于SpringBoot的家电销售展示网页的设计与实现

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

Python||五城P.M.2.5数据分析与可视化_使用复式柱状图分析各个城市的P.M.2.5月度差异情况(上)

目录 1.北京市空气质量月度差异 2.成都市空气质量月度差异 3.上海市空气质量月度差异 五城P.M.2.5数据分析与可视化_使用复式柱状图分析各个城市的P.M.2.5月度差异情况 1.北京市空气质量月度差异 import numpy as np import pandas as pd import matplotlib.pyplot as plt#读入…

小白Linux学习笔记-Linux文件系统和磁盘管理

Linux文件系统和磁盘管理 文章目录 Linux文件系统和磁盘管理文件系统资源虚拟化文件系统的概念文件系统的类型文件系统的结构文件系统的区别文件系统的简单操作dfdu 磁盘的分割、格式化与挂载分割 fdisk磁盘格式化 mkfs挂载mount 的用法mount 的查看umount /etc/fstab 将永久生…

ReactNative实现宽度变化实现的动画效果

效果如上图所示,通过修改设备宽度实现动画效果 import React, {useRef, useEffect, useState} from react; import {Animated, Text, View, Image} from react-native;const FadeInView = props => {const fadeAnim = useRef(new Animated.Value(0)).current;React.useEff…