gpt4 book ai didi

c++ - 当底层模型发生变化时,如何在 QTableView 中禁用自动滚动到顶部?

转载 作者:太空狗 更新时间:2023-10-29 23:08:53 26 4
gpt4 key购买 nike

我已经创建了自己的派生自 QTableView 的类,关联的模型派生自 QAbstractTableModel。模型中的数据是性能数据(进程名称、内存使用情况等),这些数据会以较短的时间间隔持续更新。

更新模型的方法是首先删除所有数据(包含在 beginRemoveRows/endRemoveRows 中),然后“读取”稍微更改的数据作为批处理操作(包含在 beginInsertRows/endInsertRows 中)。

如何在清除/阅读时禁用垂直自动滚动到顶部?

最佳答案

工作解决方案

滚动条移动是由于使用 beginRemoveRows/endRemoveRows 发出删除所有数据的信号。为了避免这种情况,我改为发出一个 dataChanged(...) 信号,其中包含更新后的项目列表的开始/停止索引(如果它小于现有模型)以及来自现有模型的索引如果更新的列表更大,则为模型。如果更新的列表较小,我还使用了 begin/endRemoveRows,如果更新的列表较大,我还使用了 begin/endInsertRows

关于c++ - 当底层模型发生变化时,如何在 QTableView 中禁用自动滚动到顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com