【问题标题】:QListView losing selection on editQListView 在编辑时失去选择
【发布时间】:2012-12-08 14:33:11
【问题描述】:

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

有什么方法可以确保保留选择吗?

【问题讨论】:

    标签: qt qlistview qsqltablemodel


    【解决方案1】:

    edit() 函数文档的摘录:

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

    【讨论】:

    • 谢谢,这确实解决了我遇到的另一个琐碎问题,但并没有解决我发布的问题,因为一旦完成新项目的编辑(输入按下或焦点丢失等),选择被重置.
    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 2018-11-12
    相关资源
    最近更新 更多