Повторитель для LineSeries в диаграмме - PullRequest
1 голос
/ 09 июня 2019

У меня есть 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.Код создает серию, а затем копирует данные по точкам.Возможно, есть более прямой путь, более изящный, более читаемый, более понятный?

...