QStandardItemModel高效刷新table

dearbub 2018-04-20 10:15:51
现有已处理完成的10000*20个数据(多组数据,点击后切换显示),姑且认为都是字符串,要将这些数据高效的显示到table中,怎么处理?
我现在的处理方法:
循环new item往table中添加,当点击切换显示另外一组数据时,判断行数(多了就删,少了就new),其余存在的item只做set值的操作,这样的话,当table已经存在的时候,显示数据很快。但是,当table需要增加很多行的时候,显示就会卡顿,new item的操作比较耗时,有没有更好的办法?
主要目的是要解决table中大数据量的实时显示刷新的问题!
...全文
3271 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Marcelxx 2018-04-28
  • 打赏
  • 举报
回复
对,重写你的model,其实也重写不了几个函数,关键的几个rowCount()和columCount()和data函数,data函数是最关键的,就是将你的原始数据和表格中的具体显示位置进行关联。
dearbub 2018-04-26
  • 打赏
  • 举报
回复
引用 2 楼 czyt1988 的回复:
自己写个model,model里直接和数据关联,QStandardItemModel是一个通用model,相当于你的数据又在它里面保存了一份,耗时操作是在你把你的数据转移到QStandardItemModel里的时间,只要避免这一步就行,真正的model应该就是直接操作你要显示的数据,这样,只要你的数据是O(1)的读取,无论多大的数据都不会有显示的瓶颈问题,我用table显示百万级数组都是瞬间的事情
https://bbs.csdn.net/topics/392367549 能否帮忙看下这个问题???
尘中远 2018-04-24
  • 打赏
  • 举报
回复
自己写个model,model里直接和数据关联,QStandardItemModel是一个通用model,相当于你的数据又在它里面保存了一份,耗时操作是在你把你的数据转移到QStandardItemModel里的时间,只要避免这一步就行,真正的model应该就是直接操作你要显示的数据,这样,只要你的数据是O(1)的读取,无论多大的数据都不会有显示的瓶颈问题,我用table显示百万级数组都是瞬间的事情
dext 2018-04-20
  • 打赏
  • 举报
回复
如果遇到瓶颈,在自己处理没有错误的情况下,考虑 只刷新看到的。

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧