Q:

Объясните пример из qt Osciloscope

Интересует именно момент, каким образом данные которые генерируются, попадают на график, не могу никак понять, зачем там столько дополнительных переменных
да и функции вроде не массив передают.
Главный вопрос и задача в том, что у меня есть массив , который создается рассчитывается и постоянно меняется в С++
теперь я хочу, что бы в моей части с графикой, все эти значения отрисовывались.
Разобрав пример я не понимаю как я могу это сделать
Сам пример.

A:

Честно говоря, от QML я далек, но вижу следующее: есть источник данных DataSource, в котором есть ссылка на компонент графика QQuickView:
QQuickView viewer;
...
DataSource dataSource(&viewer);
viewer.rootContext()->setContextProperty("dataSource", &dataSource);

(main.cpp)
А потом по событию таймера (60 раз в секунду) мы просим этот источник данных нарисовать новые значения.
Timer {
    ...
    interval: 1 / 60 * 1000 // 60 Hz
    ...
    onTriggered: {
        dataSource.update(chartView.series(0));
        dataSource.update(chartView.series(1));
    }
}

(ScopeView.qml)
Где:
void DataSource::update(QAbstractSeries *series)
{
    if (series) {
        QXYSeries *xySeries = static_cast<QXYSeries *>(series);
        m_index++;
        if (m_index > m_data.count() - 1)
            m_index = 0;

        QVector<QPointF> points = m_data.at(m_index);
        // Use replace instead of clear + append, it's optimized for performance
        xySeries->replace(points);
    }
}

(DataSource.cpp)
Переменных много, потому что много сущностей)

DataSource - одновременно хранилище данных, их генератор и штука,
которая умеет добавлять значения в графики.
QXYSeries - сами графики-ломаные (их там два).
QQuickView - холст, на котором графики рисуются.

Остальное - детали интерфейса.

