Qt QListView在编辑时丢失选择

Qt QListView在编辑时丢失选择,qt,qlistview,qsqltablemodel,Qt,Qlistview,Qsqltablemodel,我有一个QListView从QSQLTableModel中提取数据 当用户单击“添加”按钮时,我添加一个新项目并打开它进行编辑: QSqlTableModel *tblModel= qobject_cast<QSqlTableModel *>(ui->listView->model()); if(tblModel->insertRow(tblModel->rowCount())) ui->listView->edit(tblModel-&g

我有一个QListView从QSQLTableModel中提取数据

当用户单击“添加”按钮时,我添加一个新项目并打开它进行编辑:

QSqlTableModel *tblModel= qobject_cast<QSqlTableModel *>(ui->listView->model());
if(tblModel->insertRow(tblModel->rowCount()))
    ui->listView->edit(tblModel->index(tblModel->rowCount()-1, 1));
QSqlTableModel*tblModel=qobject\u cast(ui->listView->model());
if(tblModel->insertRow(tblModel->rowCount())
ui->listView->edit(tblModel->index(tblModel->rowCount()-1,1));
但一旦用户编辑完新值,listView的选择就会丢失。我在QListView或QSQLTableModel上找不到信号来处理何时和编辑已完成以“还原”选择

有什么方法可以确保保留所选内容吗?

编辑()函数文档摘录:

请注意,此函数不会更改当前索引。自从 当前索引定义要编辑的下一个和上一个项目,用户可以 发现键盘导航未按预期工作。提供 一致的导航行为,在此之前调用setCurrentIndex() 具有相同模型索引的函数

edit()函数文档的摘录:

请注意,此函数不会更改当前索引。自从 当前索引定义要编辑的下一个和上一个项目,用户可以 发现键盘导航未按预期工作。提供 一致的导航行为,在此之前调用setCurrentIndex() 具有相同模型索引的函数


谢谢,这确实解决了我遇到的另一个小问题,但并不能解决我发布的问题,因为一旦编辑新项目完成(按enter或focus lost等),选择就会重置。谢谢,这确实解决了我遇到的另一个小问题,但不能解决我发布的新项目编辑完成后的问题(输入按下或焦点丢失等),选择被重置。