PyQt5数据库开发1 4.3 QSqlTableModel⑥

2023-11-30 23:12:19 浏览数 (2)

数据的修改

修改前数据

修改数据

将黄蓉的工资改为200,出生日期改为4月29日,备注也改一下

点完后

按一下取消键,数据行变回原样

再改一次,这次按保存键

查询数据库,发现数据被改了

改一下黄蓉的性别和省份,按保存

数据库里查查,改掉了

tableview里数据的修改

bug

在右边的groupbox里的数据修改没问题,在左边的tableview里面修改就有问题

弹出修改框,随便乱改,变成下面的样子

按保存,去数据库里面查,发现已经把性别改成了不合理的数据X

在右侧的groupbox里,由于限制了性别只能去男和女,所以显示不出来X

要解决这个问题,要对tableview里面数据的修改进行限制

自定义代理组件

tableview默认的单元格编辑组件是QlineEdit,对输入的数据无法限制。可以为某列设置自定义代理组件,比如QcommoBox。在上面的bug中,希望把性别的编辑组件改成QcommoBox,只能选择某些项(比如男和女),而不能随便输入。

新建文件myDelegates.py,创建一个

修改代码,添加自定义组件

在opentable函数中插入红色框框中的代码

运行程序,发现tableview里面的变化

添加和插入按钮

添加代码

import模块

插入红色框框部分代码

测试添加功能

查数据库,新记录出现了

测试插入功能

查查数据库,新纪录出现。数据库语句没有排序字段,所以新纪录出现在最后

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

0 人点赞