如何在拖动行后更新QTableView中的选择

时间:2014-10-21 14:38:58

标签: qt qtableview qabstractitemmodel

我有自定义QTableView类,它根据QAbstractItemModel显示自定义模型的内容。在模型中,我实现了所有需要的方法来支持DragAndDrop更改行顺序(使用dropMimeData())。

但我不知道如何在模型(和视图)更改后更新视图中的选择。 例如: 用户点击该行,它变为“已选中”; 用户将此行拖到其他位置;
行是模型和视图中的交换;

但是选择保留在第一个选定的行上。

模型如何通知视图以更改选择?

注意:我不能创建额外的信号和插槽,因为不使用MOC。

1 个答案:

答案 0 :(得分:0)

解决方案是:

  1. 在功能dropMimeData()中,需要在数据更改的位置使用beginMoveRows()andMoveRows()
  2. 需要处理模型的信号QAbstractItemModel::rowsMoved,我们可以在其中检索目标行的索引。