我正在使用 PyQt 并在其中包含旧应用程序。在这个基于 UI 的应用程序中,我想添加在 qml 中定义的实时图表(比如使用 QtCharts)。我能够使用 QtQuick 2.0 和 QtQuick.Controls 加载基本的 qml 文件。但我无法使用 QtCharts 导入 qml 文件。
有没有其他更好的方法可以在 PyQt 应用程序上使用 qml 有效地绘制实时图形?
QtChart解决方案(参考creator example qmloscilloscope)
在 QML 文件中以 QML LineSeries 对象作为参数调用 python 函数。仅 LineSeries 和 ScatterSeries 支持属性 useOpenGL。其他系列,例如 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)
}
蟒蛇文件:
...
@pyqtSlot(QObject)
def update(self, series):
series.clear()
for i in range(10):
series.append(i, random.random()*100)