QwtPlot sending runtime exception when trying to show a curve with 8000 points
I'm trying to show two curves in a QwtPlot and replot each 20 miliseconds. But when I run my program it throws a runtime exception.
Here are my variables:
@QwtPlot * spectrum = new QwtPlot();
QwtPlotCurve * Tcurve = new QwtPlotCurve();
QwtPlotCurve * Scurve = new QwtPlotCurve();
const int count = 1;@
And here is the code for every time I replot spectrum :
Tpoints << QPointF(i,intArray[i]);
Spoints << QPointF(i-4005,intArray[i]);
The intArray array is updated every millisecond through a UDP socket connection but the spectrum is updated each 20 milliseconds.
Farther info: The size of the QwtPlot is 1000x280
Thank you in advance for your help,
welcome to devnet
Did you try to set a lower update rate (e.g. 1 second or even more)?
Which version of Qwt are you using?
Also OS, compiler?
Thank You :)
Yes, I set it to 100 milliseconds, 1 second and 2 seconds, still the same.
I'm using qwt 6.1.0, with Qt 5.1.1 MinGW 32bit compiler and in Windows.
When I reduce the number of points the exception does not occur but unfortunately I need all of the points shown.
I have also set a QwtPlotZoomer for the plot, when I set count to 2 and zoom in just after the program starts the exception does not appear but when I zoom out the exception is instantly thrown. It's like the plot can't show all the 8000 points together...
I am using the same configuration, but still Qt 5.1.0. I have much more points. Therefore, I guess it should not be an issue in your case either.
I looks more that something might not be initialized. debug and release versions do show the same problem?
Can you start it in debugger? This gives you generally quite a good guess where to search.
I used both the debug and release versions and in got the exception in both.
I also ran the debugger which gave me a signal with : "Signal meaning: Segmentation fault"
I did a little search around segmentation fault in this case, gonna change my Qt version to see if that will make a difference.