QTableView类中实时刷新和固定选中的矛盾(即刷新后不清除选中标记)的解决方法

在非MVC机制的编程中使用QTableView类,若需要QTableView显示的内容实时刷新(如固定周期刷新),往往会导致选中标记也会被清除掉(即刷新之前选中某块区域,刷新之后就取消了选中),如果希望在刷新过程中保留选中标记,可选用如下方法:

(1)   刷新前保存当前选中的单元格

QModelIndexListselected = tableView->selectionModel()->selectedIndexes();

其中QTableView  *tableView= new QTableView(this);

(2)   数据刷新完毕恢复选中标记

if(!selected.isEmpty())

{

        foreach(const QModelIndex&index, selected)

       {

      tableView->selectionModel()->select(index,QItemSelectionModel::Select);

       }

}


在刷新数据的代码前加上(1)中的代码行,刷新数据的代码后加上(2)中的代码行,即可实现功能,解决实时刷新和固定选中的矛盾(即刷新后不清除选中标记)。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lusirking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值