QWT绘制瀑布图性能问题?
的有关信息介绍如下:
202309更新:
这条回答是好多年前写的,当时对qt charts和qwt都没深入使用,如果看过我后来的回答就知道,我后面都是无脑推荐qwt的。
但qwt也不是完美适配题主的需求,因为瀑布图这东西和曲线图完全是两码事,和热力图勉强能沾个边。
实际性能最好的方式,我更新在评论区置顶回复里了,就不重复搬运到回答了。
补充,虽然我更推荐Qt Charts,但已有成熟实现的情况下,用qwt也并不是不可——Qwt的example里,我记得有一个现成的示波器,那个就是动态曲线绘制项目名我记得是叫oscilloscope
还有个不记得名字的example了,效果是在一个canvas里绘制了四条动态的封闭曲线,也可以查看下实现
————————————————————————————————
谢邀
Qwt是用于显示静态图表的,对动态刷新的支持并不好。针对这种情况,有两种解决方案
一,换用Qt Charts
这是Qt的原商业版组件,从5.6版开始以GPL协议提供给开源版使用,功能、性能、上手度、美观度都优于qwt
在Qt5.6之前的版本中,可自行编译使用,但最早只能是5.4。更早的版本中,只能使用商业版qt
二,使用GPU渲染
Qt Widget组件是使用cpu渲染的,这也是性能瓶颈的来源,但qt提供了多种方式让我们可以用GPU渲染界面。
第一个方法是改用QML,则默认用GPU渲染,显然qwt不支持,qt charts好像是可以的
第二个方法是替换掉默认的paintEngine,参见这个答案里我的评论补充
用Qt5的Qpainter画视频解码的图像,发现CPU占用极高(50%),有方法能够降低cpu占用吗? - 诸葛不亮的回答
具体用法直接百度即可,或者查阅qt文档



