Использование 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)