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项目

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第1张图片PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第2张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第3张图片

MainWindow的windowTitle属性设为bkj6-1 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第4张图片

2. 添加一个tableview 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第5张图片

3. 添加资源 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第6张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第7张图片

4. 添加Action 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第8张图片

5. 修改Action的状态

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

6. 添加工具栏

 

7. 添加菜单 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第9张图片PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第10张图片

8. 实现按钮功能 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第11张图片

二、Qt对话框窗体设计

1. 新建窗体

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第12张图片

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第13张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第14张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第15张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第16张图片

设置窗体的objectName 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第17张图片

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第18张图片

2. 拷贝组件

拷贝bkj4-3里面的groupBoxRight过来

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第19张图片

3. 放按钮

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

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

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第20张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第21张图片

4. 调整布局

点击frame,设为垂直布局

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第22张图片

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第23张图片

5. 为按钮设置图标 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第24张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第25张图片

6. 实现按钮功能 

三、窗体功能实现

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

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

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

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第26张图片

2. 新建项目 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第27张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第28张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第29张图片

3. 新建appMain.py文件 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第30张图片

4. 新建myMainWindow.py文件 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第31张图片

5. 新建myDialogData.py文件 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第32张图片

6. 项目文件结构 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第33张图片

四、myMainWindow.py文件

1. 打开数据库

4.1.1 import新模块

4.1.2 打开数据库函数

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第34张图片

2. 打开表

4.2.1 import新模块

4.2.3 打开表函数 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第35张图片

3. 行切换处理

4.3.1 槽函数

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第36张图片

4.3.2 设置关联 

4.3.3 测试 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第37张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第38张图片

五、编辑记录功能

1. 寻找函数名

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第39张图片

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

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第40张图片

2. 写槽函数

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第41张图片

3. 写其中的__updateRecord的实现

5.3.1 import新模块

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第42张图片

5.3.2 写实现

插入红色框中代码

 

4. 在myDialogData里面写setUpdateRecord代码 

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第43张图片

5. 在myDialogData里面写getRecordData代码 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第44张图片

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第45张图片

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

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

插入一行语句

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第46张图片

再次运行 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第47张图片

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

8. 修改程序

import新模块

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第48张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第49张图片

9. 再次运行

成功了

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第50张图片

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

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

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

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

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第51张图片

3. 测试返回函数

改一下欧阳锋的数据

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第52张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第53张图片

检查返回值 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第54张图片

4. 修改myMainWindow.py的updateRecord函数 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第55张图片

5. 测试

修改成功

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第56张图片

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第57张图片

七、tableView上的双击

1. 寻找函数名

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

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第58张图片

选择双击 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第59张图片

记住函数名 

2. 写函数代码 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第60张图片

3. 测试

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第61张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第62张图片

八、插入记录功能

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第63张图片

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

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第64张图片

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第65张图片

4. 测试 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第66张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第67张图片

露出刚刚插入的数据 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第68张图片

数据库里面查一查 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第69张图片

九、删除记录功能

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第70张图片

2. 测试删除功能

将欧阳锋的数据删掉

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第71张图片

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第72张图片

去数据库查查有没有 

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第73张图片

十、涨工资和测试SQL

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第74张图片

2. 记一下原始工资 

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第75张图片

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第76张图片

3. 点击涨工资按钮

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

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第77张图片

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

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

10.4.1 import新模块

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第78张图片

10.4.2 添加pyqtslot 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第79张图片

10.4.3 测试 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第80张图片

点涨工资 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第81张图片

终于对了

十一、tableView双击bug修改

1. bug出现

发现数据编辑有问题

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第82张图片

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

改成7000后,点确定

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第83张图片

没有问题,改成7000了 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第84张图片

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第85张图片

改完后点确定 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第86张图片

弹出空白表 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第87张图片

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第88张图片

2. 修改代码

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第89张图片

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

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

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第90张图片

3. 测试 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第91张图片

双击8000,改成9000 

PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第92张图片

点击确定后返回 

 PyQt5数据库开发3 6 QSqlQuery完整实操案例【图文详解】_第93张图片

你可能感兴趣的:(Python,qt,ui,python,数据库)