How to make the SplineSeries's appended values permanent?
-
I created an item called Chart. I put chartview and splineseries in it. Then I created Chart modules in another item and appended the chart values. But on page transition old splineseries values are lost and regenerated. That's why I can't see the old values in the chart. How can I make the SplineSeries's appended values permanent?
Chart.qml:
import QtQuick 2.12 import QtCharts 2.3 import "Global" Item { id: chartComponent property double xVal: 0.0 property double yVal: 0.0 Rectangle{ id: temperatureChartRect //... Rectangle{ id: temperatureChartHeader //... Text { id: temperatureChartHeaderTxt //... } } ChartView { id: temperatureChart //... clip: true antialiasing: true backgroundRoundness: 0.0 legend.visible: false Rectangle{ id: rectang //... } ValueAxis { id: valueAxisY min: yVal < 0 ? Math.min(yVal*1.2, 0) : yVal*0.5 max: Math.max(yVal*1.2, yVal) tickCount: Math.min(temperatureChart.height/40, 25) } ValueAxis { id: valueAxisX min: 0 max: Math.max(xVal*1.2, xVal) tickCount: Math.min(temperatureChart.width/40, temperatureChartSeries.count) } SplineSeries { id: temperatureChartSeries axisX: valueAxisX axisY: valueAxisY useOpenGL: true } } } onXValChanged : { temperatureChartSeries.append(xVal, yVal) console.log("SplineSeries count : ", temperatureChartSeries.count) } }
someOther.qml (Callee qml):
import QtQuick 2.12 import QtQuick.Layouts 1.12 import QtQuick.Controls 2.15 import QtCharts 2.3 import "Global" Item { id: remoteControlPage FontLoader { id: fontFamily; source: Style.fontFamilySource } //... //... property int timerCountQml: serialCommQml.timerCount property var sensorChartQml: serialCommQml.command.sensorChart Chart { //Chart1 id: pt100TempChart anchors.top: parent.top anchors.left: stateStatus.right anchors.leftMargin: 20 width: Math.max(300, parent.width / 3) height: Math.max(250, parent.height/3) chartName: "PT100 Temperature" xVal:timerCountQml yVal: sensorChartQml.pt100Temp } Chart { //Chart2 //... } Chart { //Chart3 //... } Chart { //Chart4 //... } }
Application Output:
qml: SplineSeries count : 1 //Chart1
qml: SplineSeries count : 1 //Chart2
qml: SplineSeries count : 1 //Chart3
qml: SplineSeries count : 1 //Chart4
qml: SplineSeries count : 2
qml: SplineSeries count : 2
qml: SplineSeries count : 2
qml: SplineSeries count : 2
//...
//...
qml: SplineSeries count : 25
qml: SplineSeries count : 25
qml: SplineSeries count : 25
qml: SplineSeries count : 25
qml: GmtNavigationButton_QMLTYPE_7(0x55e0c0dc9d80) //page transition
qml: SplineSeries count : 1
qml: SplineSeries count : 1
qml: SplineSeries count : 1
qml: SplineSeries count : 1
qml: SplineSeries count : 2
qml: SplineSeries count : 2
qml: SplineSeries count : 2
qml: SplineSeries count : 2
//...
//...
qml: GmtNavigationButton_QMLTYPE_7(0x55e0c0dc9d80) //page transition
qml: SplineSeries count : 1
qml: SplineSeries count : 1
qml: SplineSeries count : 1
qml: SplineSeries count : 1
qml: SplineSeries count : 2
qml: SplineSeries count : 2
qml: SplineSeries count : 2
qml: SplineSeries count : 2
//...
//...Screenshots:
26 seconds of graphic display before page transition
After 26 seconds the page transition took place and the data started to regenerate in 26 seconds. But the first 26 seconds of data was lost.