1

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

用户单击“添加”按钮后,我添加了一个新项目并将其打开以进行编辑:

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 上找不到信号来处理何时和编辑完成,以便我“恢复”选择。

有没有办法可以确保保留选择?

4

1 回答 1

1

摘自 edit() 函数文档:

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

于 2012-12-08T15:07:20.920 回答