Использование PyQt для интеграции диаграммы на основе qml в существующий пользовательский интерфейс

Я использую PyQt и у меня есть устаревшее приложение в нем. В этом приложении на основе пользовательского интерфейса я хотел бы добавить графики в реальном времени, определенные в qml(скажем, с помощью QtCharts). Я могу загрузить основной файл qml с помощью QtQuick 2.0 и QtQuick.Controls. Но я не могу импортировать файлы qml с помощью QtCharts.

Есть ли другой лучший способ построения графиков в реальном времени с использованием qml в приложении PyQt?

1 ответ

Решение QtChart (см. Пример создателя qmloscilloscope)

В файле QML Вызовите функцию python с объектом QML LineSeries в качестве аргумента. Свойство useOpenGL поддерживается только для LineSeries и ScatterSeries. Другие серии, такие как BarSeries, менее эффективны, чем эти две.

Файл QML:

    LineSeries{
        id: lineSeries
        name: "signal"
        useOpenGL: true
        axisX: ValueAxis {
            id: axisX
            min: 0
            max: 10
        }
        axisY: ValueAxis {
            id: axisY
            min: 0
            max: 100
        }
    }
    Timer {
        interval: 1000/25
        running: true
        repeat: true
        onTriggered: modelSpectrum.update(lineSeries)
    }

Файл Python:

...
@pyqtSlot(QObject)
def update(self, series):
    series.clear()
    for i in range(10):
        series.append(i, random.random()*100) 
Другие вопросы по тегам