|
ZoomScrollTrack2 setting value for loadData from another class |
Posted by jill on Aug-23-2019 16:20 |
|
In MainWindow I have some pushbutton when I click them
They Selects values from the database, I want to set those values for m_dataSeriesA, m_dataSeriesB, m_dataSeriesC.
So after creating the pointer from
ZT = new ZoomScrollTrack2 ();
I'm calling ZT-> loadData (rows [0]). Instead of calling it the ZoomScrollTrack2 constructor
But the program crashed, what should I do to set values from another class? |
Re: ZoomScrollTrack2 setting value for loadData from another class |
Posted by Peter Kwan on Aug-23-2019 21:57 |
|
Hi Jill,
From your message, it seems you are referring to the Qt demo code in ChartDirector for C++. Would you to clarify how the code is modified for your case?
In the original sample code, the last few lines in the constructor is like:
// Load the data
loadData();
// Initialize the QChartViewer
initChartViewer(m_ChartViewer);
// Initially set the mouse to drag to scroll mode
pointerPB->click();
// Trigger the ViewPortChanged event to draw the chart
m_ChartViewer->updateViewPort(true, true);
Please note:
(a) If you remove "loadData();", you must also remove the initChartViewer and updateViewPort lines, because the latter two lines requires the data.
(b) When you look at the loadData function, it initializes a m_ranSeries variable. If you do not call "loadData" in the constructor, your code must add code to initialize the member variables to valid values in the constructor, like "m_ranSeries = 0;". If you do not use the RanSeries in your test code, the m_ranSeries variable in not necessary, and you can remove it entirely.
(c) After your code calls the loadData function later, please remember to call the "initChartViewer" and "updateViewPort" as well.
(d) The "drawChart" routine uses the data to draw the chart. The chart will be updated when the user moves the scrollbar or change the date/time controls. If the data has not been loaded, and the user drags the scrollbar, the "drawChart" will try to update the chart and may crash as there is no data. Please add the following line at the beginning to disable it from drawing then chart when there is no data.
if (m_timeStamps.len == 0)
return;
Hope this can help.
Regards
Peter Kwan |
|