PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】
创始人
2024-06-03 15:36:33
0

目录

一、Qt主窗体设计

1. 新建Qt项目

2. 添加一个tableview 

3. 添加资源 

4. 添加Action 

5. 修改Action的状态

6. 添加工具栏

7. 添加菜单 

8. 实现按钮功能 

二、Qt对话框窗体设计

1. 新建窗体

2. 拷贝组件

3. 放按钮

4. 调整布局

5. 为按钮设置图标 

6. 实现按钮功能 

三、窗体功能实现

1. 编译窗体文件和资源文件

2. 新建项目 

3. 新建appMain.py文件 

4. 新建myMainWindow.py文件 

5. 新建myDialogData.py文件 

6. 项目文件结构 

四、myMainWindow.py文件

1. 打开数据库

4.1.1 import新模块

4.1.2 打开数据库函数

2. 打开表

4.2.1 import新模块

4.2.3 打开表函数 

3. 行切换处理

4.3.1 槽函数

4.3.2 设置关联 

4.3.3 测试 

五、编辑记录功能

1. 寻找函数名

2. 写槽函数

3. 写其中的__updateRecord的实现

5.3.1 import新模块

5.3.2 写实现

4. 在myDialogData里面写setUpdateRecord代码 

5. 在myDialogData里面写getRecordData代码 

6. 运行试试看,发现生日有问题 

7. 看看生日出了什么问题

8. 修改程序

9. 再次运行

六、将对话框编辑的数据返回给界面

1. 在myDialogData.py中添加返回函数

2. 在myMainWindow.py中添加显示代码

3. 测试返回函数

4. 修改myMainWindow.py的updateRecord函数 

5. 测试

七、tableView上的双击

1. 寻找函数名

2. 写函数代码 

3. 测试

八、插入记录功能

1. 在myMainWindow.py中添加插入函数

2. 在myDialogData.py中添加setInsertRecord函数 

3. 在myMainWindow.py中添加返回的记录的处理 

4. 测试 

九、删除记录功能

1. 在myMainWindow.py中添加删除函数

2. 测试删除功能

十、涨工资和测试SQL

1. 添加涨工资函数和降薪函数

2. 记一下原始工资 

3. 点击涨工资按钮

4. 一次按钮两次操作的bug

10.4.1 import新模块

10.4.2 添加pyqtslot 

10.4.3 测试 

十一、tableView双击bug修改

1. bug出现

2. 修改代码

3. 测试 


一、Qt主窗体设计

1. 新建Qt项目

MainWindow的windowTitle属性设为bkj6-1 

2. 添加一个tableview 

3. 添加资源 

4. 添加Action 

5. 修改Action的状态

除了actOpenDB和actQuit之外,把其他的action全部改为不是enabled的

6. 添加工具栏

 

7. 添加菜单 

8. 实现按钮功能 

二、Qt对话框窗体设计

1. 新建窗体

 

设置窗体的objectName 

设置窗体的属性为编辑记录 

2. 拷贝组件

拷贝bkj4-3里面的groupBoxRight过来

3. 放按钮

右边放一个frame,在frame上放两个按钮和一个Vertical spacer

两个按钮分别命名为btnOK和btnClose,text为确定和取消

 

4. 调整布局

点击frame,设为垂直布局

 

点击窗体空白处,设为水平布局 

5. 为按钮设置图标 

6. 实现按钮功能 

三、窗体功能实现

1. 编译窗体文件和资源文件

拷贝项目4-3里面的compile.bat到项目目录中,改名为compilemore.bat。

修改compilemore.bat,添加红色框中内容,保存,运行。

 

2. 新建项目 

3. 新建appMain.py文件 

4. 新建myMainWindow.py文件 

5. 新建myDialogData.py文件 

6. 项目文件结构 

四、myMainWindow.py文件

1. 打开数据库

4.1.1 import新模块

4.1.2 打开数据库函数

2. 打开表

4.2.1 import新模块

4.2.3 打开表函数 

3. 行切换处理

4.3.1 槽函数

4.3.2 设置关联 

4.3.3 测试 

五、编辑记录功能

1. 寻找函数名

qt上在actRecEdit上右键,选转到槽

在弹出的文件中复制函数名 

 

2. 写槽函数

3. 写其中的__updateRecord的实现

5.3.1 import新模块

5.3.2 写实现

插入红色框中代码

 

4. 在myDialogData里面写setUpdateRecord代码 

 

5. 在myDialogData里面写getRecordData代码 

6. 运行试试看,发现生日有问题 

可以看到,除了出生日期之外,其他数据都可以了

7. 看看生日出了什么问题

插入一行语句

 

再次运行 

说明recData.value(“Birthday”)是有东西的,只是没显示出来

8. 修改程序

import新模块

 

9. 再次运行

成功了

 

六、将对话框编辑的数据返回给界面

1. 在myDialogData.py中添加返回函数

2. 在myMainWindow.py中添加显示代码

拿生日和工资数据做测试,添加输出代码

 

3. 测试返回函数

改一下欧阳锋的数据

检查返回值 

4. 修改myMainWindow.py的updateRecord函数 

5. 测试

修改成功

数据库里检查一下,已经改了 

七、tableView上的双击

1. 寻找函数名

qt上,tableView上点右键,选择转到槽

 

选择双击 

记住函数名 

2. 写函数代码 

3. 测试

八、插入记录功能

1. 在myMainWindow.py中添加插入函数

2. 在myDialogData.py中添加setInsertRecord函数 

 

3. 在myMainWindow.py中添加返回的记录的处理 

4. 测试 

露出刚刚插入的数据 

数据库里面查一查 

九、删除记录功能

1. 在myMainWindow.py中添加删除函数

2. 测试删除功能

将欧阳锋的数据删掉

 

点击删除后,界面上显示已被删除 

去数据库查查有没有 

 

十、涨工资和测试SQL

1. 添加涨工资函数和降薪函数

2. 记一下原始工资 

 

3. 点击涨工资按钮

发现想涨500,结果跑了两次,涨了1000元

 

4. 一次按钮两次操作的bug

这是PyQt5常见的bug,加多pyqtSlot()在函数前面试试看

10.4.1 import新模块

10.4.2 添加pyqtslot 

10.4.3 测试 

点涨工资 

终于对了

十一、tableView双击bug修改

1. bug出现

发现数据编辑有问题

比如要改穆念慈的工资,从6000改成7000。选中穆念慈这行,然后点编辑记录

改成7000后,点确定

没有问题,改成7000了 

下面换一种方式,双击7000,将其改成8000

改完后点确定 

弹出空白表 

这时在工具栏上某个按钮点一下,记录才会出来 

2. 修改代码

找到__updateRecord函数,在函数的最后,是这样的

应该是红色框中语句有问题,导致更新tableView失败

注释掉红色框中代码,改成下面这样

3. 测试 

双击8000,改成9000 

点击确定后返回 

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
带头循环双向链表来咯!!! 前言:继上文,我们了解了结构最简单的一种链表---单链表那么我们今天就来...