我正在使用PyQt并在其中包含遗留应用程序。在这个基于UI的应用程序中,我想添加在qml中定义的实时图形(比如使用QtCharts)。我可以用QtQuick 2.0和QtQuick.Controls加载一个基本的qml文件。但是我无法使用QtCharts导入qml文件。
还有其他更好的方法可以在PyQt应用程序上使用qml有效地绘制实时图吗?
答案 0 :(得分:0)
QtChart解决方案(参考创建者示例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)
}
Python文件:
...
@pyqtSlot(QObject)
def update(self, series):
series.clear()
for i in range(10):
series.append(i, random.random()*100)