如果你希望通过QT来实现一个绘图库以展示数据,网上一般能搜到各种方案,具体使用哪种呢?我这边给出一些思路:
直接给出通用方案:
2D图表:QGraphicsView 实现
3D图表:QDataVisualization 实现
二维图方面,QT自带的QChart不太好用,而且一般需要2D图的软件,通常都会要求进行各种交互,如果你使用自带的或者是别人的第三方库,那么对于特殊交互将非常难以实现,所以对于2D图,原则上我们需要使用最底层的Graphics框架来实现,这个不难,如果你有至少能写出一个简单QT程序界面的能力,我认为你就是可以学会的。
当然如果仅仅是做简单图表的简单显示,demo级别的程序用自带的也没问题、
三维图方面,QDataVisualization 针对三维图表,一般用于各种工业、机械等方面专业软件的数据可视化,简单易用,虽然交互也没法太复杂,不过一般软件对于3D图也不太需要复杂交互(对于复杂3D图的复杂交互,那不就是游戏吗?不是我们做QT的该考虑的,嘿嘿)。另外如果有定制3D图型功能的需求,那学习成本就非常高了,VTK和Q3D可以使用,学习上,都挺难的,资料也不多,Q3D需要学会openGL,很有难度,不过如果能熟练使用那也是很棒,时间充裕也是可以学一学。
VTK针对于非常复杂的3D数据模型,一般要医学上或者大型工程上的建模,处理大量数据才会用到,一般不建议轻易尝试。
总结:
用Graphics框架构建高度自定义的二维图表,实现复杂交互功能,使用QDataVisualization 实现3D图表进行数据的立体展示和简单交互。
Bye