QT---SQL---显示和编辑优化

来源:互联网 发布:淘宝企业店铺费用 编辑:程序博客网 时间:2024/06/07 18:35

QT中的delegate 代理

1. 可以指定列是否可以修改

2. 翻译可以指定显示的是什么内容,提交的时候再翻译成数据库里面需要的数据

3. 翻译可以提供编辑器  lineedit  spinbox(用来输入和显示数字的)


数值的转换不是在代理中做

代理 提供接口让输入

代理 负责编辑器改变

控件


通过data()和setdata()来转换数据,负责做翻译的事情


Qviriant 万能类型


代理  重载QSqlTableModel实现显示和编辑的优化


itemdelegate


设置可修改、不可修改


代理-----可以按表来管理,也可以按字段来管理


事务  transaction    -------数据库保证完整性必不可少


model->database().transaction()     ----->开始事务


model->database().commit()    ----->    事务级别的提交

model->submitAll()       ----->    表提交

事务的处理是全局性的。一个database可能对应多个model,可以从任意model开始事务,以及从任意model提交事务。在model.database().rollback()时,同时会把属于同一个database的model都回退。所有进行正在操作的model都会受到影响