2011-10-06 46 views
3

我已经创建了我自己的从QTableView派生的类,关联模型是从QAbstractTableModel派生的。模型中的数据是性能数据(进程名称,内存使用情况等),它们以较短的时间间隔不断更新。如何在底层模型更改时禁用自动滚动到QTableView顶部?

通过首先删除所有数据(用beginRemoveRows/endRemoveRows括起来),然后将稍微更改的数据作为批处理操作(用beginInsertRows/endInsertRows括起来)进行“读取”来完成更新模型。

每当我清除/读取时,如何禁用垂直自动滚动到顶部?

+0

请发表回复作为回答 – crazyjul

+0

你想要确切的代码吗? – Kristofer

+0

不,将您的工作解决方案从问题复制到答案 – crazyjul

回答

1

工作溶液

滚动条运动,是由于使用的信令beginRemoveRows/endRemoveRows所有数据的去除。为了避免这种情况,我反而发出一个dataChanged(...)信号,如果它小于现有模型,则使用更新的项目列表的开始/停止索引,如果更新的列表来自现有模型的索引更大。如果更新的列表较小并且开始/结束插入行(如果更新的列表较大),我还使用了begin/endRemoveRows

相关问题