2012-12-08 99 views
0

我有一个QListView从QSQLTableModel中提取数据。QListView在编辑时丢失选择

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

QSqlTableModel *tblModel= qobject_cast<QSqlTableModel *>(ui->listView->model()); 
if(tblModel->insertRow(tblModel->rowCount())) 
    ui->listView->edit(tblModel->index(tblModel->rowCount()-1, 1)); 

但是一旦用户完成编辑新的价值,ListView控件的选择都将丢失。我无法在QListView或QSQLTableModel上找到一个信号来处理编辑完成后何时“恢复”选择。

有没有一种方法可以确保选择保存?

回答

0

从编辑()函数文档的摘录:

请注意,该功能不会改变当前指数。由于 当前索引定义了要编辑的下一个和前一个项目,因此用户可能会发现键盘导航无法按预期工作。要提供 一致的导航行为,请在具有相同模型索引的此 函数之前调用setCurrentIndex()。

+0

谢谢,这确实解决另一个问题耍赖我有,但并没有解决我张贴,因为一旦新项目的编辑完成的问题(按输入或聚焦丢失等),选择复位。 –