multiple Instanzen von QChartView updaten
Verfasst: 24. März 2019 20:32
Hallo zusammen,
ich hab ein kleines Tool welches einfach 8 Charts anzeigen soll. (8xCPU Auslastung als LineSeries) Der Aufbau ist wie folgt:
zuerst das QChartView-Element in eigener qml-Datei:
Chart.qml
Der Aufruf in der main.qml sieht so aus:
Als "backend" nehme ich statt C++ PySide2:
test.py
Der Slot in Python wird auch aufgerufen und die Property objectName scheint auch zu stimmen. Leider wird das "replace" überhaupt nicht aufgerufen. Ich habe das Gefühl, dass ich auf einer falschen Instanz von QLineSeries werkel.
Ich bin leider was QML betrifft noch ein ziemlicher Neuling. Kann mir jemand auf die Sprünge helfen ob das Instanziieren der QChartsView soweit ok ist? wie würdet ihr das updaten der einzelnen Charts machen? Im Prinzip haben die alle die gleichen Achsen und sollen nur unterschiedliche Arrays darstellen.
ich hab ein kleines Tool welches einfach 8 Charts anzeigen soll. (8xCPU Auslastung als LineSeries) Der Aufbau ist wie folgt:
zuerst das QChartView-Element in eigener qml-Datei:
Chart.qml
Code: Alles auswählen
import QtQuick 2.1
import QtCharts 2.1
ChartView {
objectName: "chartView"+(index)
id: chartview
.....
ValueAxis {
id: xAxis
.....
}
ValueAxis {
id: yAxis
......
}
LineSeries {
id: lineSeries
objectName: "LineSeries"+(index)
axisX: xAxis
axisY: yAxis
XYPoint { x: index; y: 0.0 }
XYPoint { x: 1.1; y: 3.2 }
}
Timer {
......
onTriggered: {
manager.update_cpu_chart((index), parent.series(0));
}
}
}
Code: Alles auswählen
Grid {
x: 0; y: 0
rows: 2; columns: 4; spacing: 0
Repeater {
model: 8
id: chartRepeater
Chart{}
}
}
test.py
Code: Alles auswählen
@Slot(int,QtCharts.QAbstractSeries)
def update_cpu_chart(self, index, series):
if series:
line_series = QtCharts.QLineSeries(series)
temp_list = self.core_temp.core_deques[index]
l = []
for i in range(0,len(temp_list )):
l.append(QPointF(i,temp_list[i]))
line_series.replace(l)
Ich bin leider was QML betrifft noch ein ziemlicher Neuling. Kann mir jemand auf die Sprünge helfen ob das Instanziieren der QChartsView soweit ok ist? wie würdet ihr das updaten der einzelnen Charts machen? Im Prinzip haben die alle die gleichen Achsen und sollen nur unterschiedliche Arrays darstellen.