如何在表格中添加一列,我可以在某些单元格中放置复选标记以进行进一步处理



我正在使用Qt5。现在我有一个使用 QSqlTableModel 填充了数据库表中数据的QTableView。我添加了一列带有model->insertColumn(n);.我希望能够 - 使用鼠标 - 在这个新添加的列的某些单元格中放置一些复选标记,因为 - 退出tableView后 - 我需要对标有复选标记的行进行一些进一步的处理...有没有办法做到这一点?请帮忙。

坏消息是:我可以添加/更改表格中的所有单元格(使用 model->setData(index, "...");),除了新添加列的单元格......
为什么会这样?

您的 QSqlTableModel 正在修改(或尝试)数据库中的相应表,并且可能以某种方式失败。您的额外列是否真的对应于来自数据库的数据,还是合成的?

无论如何,两种可能的解决方案是

  1. 原始 SQL 模型前面的代理模型
  2. 子类化您的 SQL 模型

这个想法是使用代理/子类来扩充数据(通过合成额外列的数据),以及处理检查状态。为了将单元格标记为"可检查",您需要从模型的flags()实现中返回Qt::ItemIsCheckable,然后视图将调用data()请求Qt::CheckStateRole

相关内容

  • 没有找到相关文章

最新更新