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.