0

我正在使用 PyQt 并在其中包含旧应用程序。在这个基于 UI 的应用程序中,我想添加在 qml 中定义的实时图表(比如使用 QtCharts)。我能够使用 QtQuick 2.0 和 QtQuick.Controls 加载基本的 qml 文件。但我无法使用 QtCharts 导入 qml 文件。

有没有其他更好的方法可以在 PyQt 应用程序上使用 qml 有效地绘制实时图形?

4

1 回答 1

2

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) 
于 2017-11-17T03:51:38.980 回答