修改功能我用的方法也很简单,双击要修改的单元格,就可以弹出一个窗口,用于重新编辑。
要想使用tableview的双击功能,在ui界面上对tablevoew右击“转到槽”,选择doubleClicked(const QModelIndex &index)函数
在新建的函数体下写相应代码:
QSqlTableModel * model = new QSqlTableModel(this,db);//新建model
model->setTable("EXAMPLE");//设置表
bool isOK;//定义bool类型
QString text = QInputDialog::getText(this,"Update","修改当前内容",QLineEdit::Normal,index.data().toString(),&isOK);//弹出修改框,默认显示当前内容,修改后点击按钮,是则isOK为true,否则isOK为false
if(!isOK)//判断isOKbool类型
return ;
if(model->select())//判断是否空表
model->setData(model->index(index.row(),index.column()),text);//重新设置当前单元格内容
model->submitAll();//提交修改
ui->tableView->setModel(model);
model->select();//显示修改后的数据
这里有一点要说的是输入框我们用的是
#include "qinputdialog.h"
头文件里自带的单行输入框,它会显示一个弹窗,将输入的文本传给自定义的text变量
为了编辑方便,我们选择默认显示要修改的数据,如图

这里的修改语句相当于数据库语句
update from EXAMPLE set city='北京' where city='上海'
~~~
继续下一节:查询功能