У меня есть ChartView
с двумя определенными ValueAxis
и я хотел бы отобразить несколько QLineSeries
.Данные передаются со стороны c ++ (через объект cxxDataProxy.mySeriesList
ниже) как QVariantList::append(QVariant::fromValue(QLineSeries*))
, поэтому они должны отображаться в виде списка на стороне JavaScript.Всякий раз, когда серия меняется, я хотел бы создать по одному LineSeries
на графике для каждого QLineSeries
в списке.
Моя наивная попытка была такой:
ChartView{
id: _myChartView
ValueAxis { id: _valueAxis_X }
ValueAxis { id: _valueAxis_Y }
Repeater{
id: _lineSeriesRepeater
model: cxxDataProxy.mySeriesList
Component{
id: lineSeriesDelegate
LineSeries {
name: "series #"+index.toString()
axisX: _valueAxis_X
axisY: _valueAxis_Y
}
}
}
}
в надежде, чтолюбое изменение в mySeriesList
(свойство имеет уведомление об изменении) приведет к тому, что список LineSeries
будет перестроен повторителем.Когда я действительно изменяю список, я поражаюсь:
QML Component: Delegate must be of Item type
Я видел нечто очень похожее, заданное на форуме Qt в QML, создание LineSeries во время выполнения , которое осталось без ответа.
Спасибо за предложения!
PS В этом посте динамически добавляются серии строк с использованием обратного вызова JavaScript.Код создает серию, а затем копирует данные по точкам.Возможно, есть более прямой путь, более изящный, более читаемый, более понятный?