• 14232阅读
  • 6回复

[讨论]关于qtableview,qtreeview显示最大数据量? [复制链接]

上一主题 下一主题
离线nanjingqin
 

只看楼主 倒序阅读 楼主  发表于: 2015-06-17
有哪位大神指导qtable,qtreeview最大显示数据量是多少,能显示出来而不影响滚动的,貌似qtreeview父节点下面有3000多个节点时展开时有明显的卡顿出现,,上下滚动条滚动也有卡顿,而在java中,jtable中加载10万数据不会出现明显卡顿,我想,qt控件性能不至于比不上swing吧,毕竟中间还有个虚拟机呢,,,哪位大神指点下???
离线dbzhang800

只看该作者 1楼 发表于: 2015-06-18
这东西和你的model写的好坏关系非常大
离线nanjingqin

只看该作者 2楼 发表于: 2015-06-18
回 dbzhang800 的帖子
dbzhang800:这东西和你的model写的好坏关系非常大 (2015-06-18 09:05) 

qt代理机制和java Renderrer渲染是否同一机制,JTable因为使用renderer渲染,加载大数据性能非常好,qt新人提问,不当勿怪
离线stlcours

只看该作者 3楼 发表于: 2015-06-18
你比较的是qtreeview和jtable,不是一个东西。我这里为了性能,限制qtable显示最多1万条数据,否则就要分页,显示速度很快啊。但是qtreeview的显示速度非常慢,我也为此头疼,我的投机取巧的方案是,展开子项超过100项就不展开了,反正我这个是三态树,不展开用户也知道怎么回事,但这种方案只适用于我的软件。不过大家可以一起探讨,到底用什么办法来根本性解决这个问题。至少希望Qtreeview达到qtableview一样的性能(1万条数据很快,10万条才有卡顿)。
离线nanjingqin

只看该作者 4楼 发表于: 2015-06-18
回 stlcours 的帖子
stlcours:你比较的是qtreeview和jtable,不是一个东西。我这里为了性能,限制qtable显示最多1万条数据,否则就要分页,显示速度很快啊。但是qtreeview的显示速度非常慢,我也为此头疼,我的投机取巧的方案是,展开子项超过100项就不展开了,反正我这个是三态树,不展开用户也知道怎么回事, .. (2015-06-18 16:05) 

因为我用过JTable实现过Treetable,也即是树表功能,10万条数据全部放在model,展示性能还可以,一父节点下面可以加载3000多孩子节点,点击加号展开没有明显的迟缓,qt的qtableview貌似没有树表的功能,qtreeview有树表功能,但qtreeview的parent节点下挂3k个孩子节点展开就会有明显的卡顿感觉,所以我怀疑就是渲染机制的不同造成的。
离线stlcours

只看该作者 5楼 发表于: 2015-06-18
回 nanjingqin 的帖子
nanjingqin:因为我用过JTable实现过Treetable,也即是树表功能,10万条数据全部放在model,展示性能还可以,一父节点下面可以加载3000多孩子节点,点击加号展开没有明显的迟缓,qt的qtableview貌似没有树表的功能,qtreeview有树表功能,但qtreeview的parent节点下挂3k个孩子节点展开就会有 .. (2015-06-18 19:38) 

我也怀疑是QT渲染机制的问题。我们都是中规中矩的使用qt提供的类和函数,所以应该不存在什么诀窍,而是QT本身的问题。
不过Java的UI是全虚拟的,而QT的UI只是少部分虚拟,而且QT还都是C++原生代码,另外QTableView性能也没问题。所以我觉得应该就是QTreeView的性能没有被很好的优化。
你要是有空,可以把它当作一个bug向官方提修改意见。或者我也会去做这件事情。

但是就目前来说,还是不能停,看看有没有什么其它办法来解决这个问题?
离线nanjingqin

只看该作者 6楼 发表于: 2015-06-18
回 stlcours 的帖子
stlcours:我也怀疑是QT渲染机制的问题。我们都是中规中矩的使用qt提供的类和函数,所以应该不存在什么诀窍,而是QT本身的问题。
不过Java的UI是全虚拟的,而QT的UI只是少部分虚拟,而且QT还都是C++原生代码,另外QTableView性能也没问题。所以我觉得应该就是QTreeView的性能没有被很好的优 .. (2015-06-18 21:16) 

我打算先看看qtreeview的源码,我对java的renderrer那一套渲染机制比较熟,觉得真的是非常适合大数据展示,所以我觉得qt性能比java差应该没道理才对,这段时间我再看看,有时间可以交流一下。
快速回复
限100 字节
 
上一个 下一个