2013-05-08 73 views
0

我在QAbstractTableModel子类中实现了sort。排序本身有效,但直到我将鼠标悬停在表格本身(即不是标题)之前,视图才会更改。我怎样才能解决这个问题?起初我以为我也必须发出信号,但找不到合适的信号。排序模型没有立即生效

回答

1

我用下面的代码进行排序我在一个项目模型:

void MyModel::organize() 
{ 
    if (!cache_ || cache_->empty()) return; 
    beginResetModel(); // (a) 
    std::stable_sort(cache_->begin(), cache_->end(), compareRow); 
    endResetModel(); // (b) 
} // end:(MyModel::organize) 

线(一)告诉我要重新组织数据模型,线(B)告诉模型我完成了,请刷新相关的视图。

您也可能发出dataChanged(index, index);信号。