关于GraphicsView和GraphcisScene以及QChart的使用心得

本人菜鸟一枚,将在csdn博客记录我的编程之路,把自己所学,所掌握的及时分享给大家,也把自己的困惑,不解的东西同大家一起交流。好,开始正题:

关于qtcharts最基础的东西,大家可以看一些基础的东西,但是qcharts是提供图像简单的显示,对于与图像交互的问题,qchart本身提供的并不多,这就需要我们去手动实现相关的功能。最近遇到一个问题,简单描述如下:

在chart(继承自qchart)中绘出一幅散点图,存在2个序列,分别是不同的颜色,当我需要实现点击一个点改变颜色,就可以将序列1中的点加入到序列2中,这样就实现点击的效果。但是当我想再次点击序列2的点加入到序列1时,如果序列2中只剩下一个点,就会报空指针异常。最后根据组里大牛的判断,是因为QScatterSeries产生的序列series,当产生散点图时,会触发Qt内部封装的scatterItem的类,这个类要求图元的个数>1。这就造成当剩余最后一个点时导致没有图元,出现空指针异常。

解决办法:

我们可以在点选的时候判断chart中图元的数量,如果图元的数量>1,就直接进行选择,执行相应的函数,如果图元的个数=1,我们可以在graphicsView 中的mousepressEvent中直接与chart中的图元进行交互,这样就不会发生空指针异常了。


你可能感兴趣的:(GraphicsView,QChart)