对模型进行排序不会立即生效

时间:2013-05-08 19:05:11

标签: qt signals-slots

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

1 个答案:

答案 0 :(得分:1)

我使用以下代码在项目中对模型进行排序:

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

行(a)告诉模型我将重新组织数据,行(b)告诉模型我已完成,请刷新相关视图。

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

相关问题