PyQt5数据库开发3 6 QSqlQuery完整实操案例图文详解

Posted 会洗碗的CV工程师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt5数据库开发3 6 QSqlQuery完整实操案例图文详解相关的知识,希望对你有一定的参考价值。

目录

一、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 

点击确定后返回 

 

以上是关于PyQt5数据库开发3 6 QSqlQuery完整实操案例图文详解的主要内容,如果未能解决你的问题,请参考以下文章

Windows下安装PyQt5完整教程

ImportError 与“导入 PyQt5.QtSql”

《PyQT5软件开发 - 基础篇》第6章 PyQt5对话框

《PyQT5软件开发 - 基础篇》第6章 PyQt5对话框

Python aiohttp 异步注册,登录,认证完整客户端服务器应用

基于pyQt5开发的股价显示器(原创)