在非MVC机制的编程中使用QTableView类,若需要QTableView显示的内容实时刷新(如固定周期刷新),往往会导致选中标记也会被清除掉(即刷新之前选中某块区域,刷新之后就取消了选中),如果希望在刷新过程中保留选中标记,可选用如下方法:
(1) 刷新前保存当前选中的单元格
QModelIndexListselected = tableView->selectionModel()->selectedIndexes();
其中QTableView *tableView= new QTableView(this);
(2) 数据刷新完毕恢复选中标记
if(!selected.isEmpty())
{
foreach(const QModelIndex&index, selected)
{