如何在QML上设置Value Axis Label Format,从毫秒到mm:ss?

时间:2018-01-02 09:52:44

标签: c++ qt charts qml qt-creator

背景

我正在使用QtCreator,我有一个名为 myScopeView.qml 的文件,它代表一个范围视图,类似于提供的示例here

myScopeView.qml 中,有一个ChartView每秒都会更新一次,因此绘图会在X轴和Y轴上更改值。

X轴表示以毫秒(整数值)表示的时间,因为数据采集,Y轴表示电压值(表示为整数值)。

问题

该图显示X轴值为整数,即123456789,但我希望可视化相应的 mm:ss 值,即20:34。我想我必须修改 labelFormat 的值。

    ValueAxis{
        id: axisX
        min: 0
        max: 0
        tickCount: 5
        labelFormat: // I don't know what I have to set here
        }

问题

是否可以在 labelFormat 中设置特定值,以便可视化 mm:ss

备注

我没有修改labelFormat,而是尝试使用Javascript函数进行转换,但是此解决方案不起作用,因为转换是在可视化之前实现的,因此绘图没有显示任何内容,因为没有与新X值相关联的Y值。这就是我要求labelFormat命令的原因,但我也会欣赏Javascript提示。

我知道QML QtCharts有QDateTimeAxis,它提供 mm:ss 格式,但我想仅为可视化而不是为其他目的转换数据。

1 个答案:

答案 0 :(得分:0)

我这样做:

DateTimeAxis {
            id: axisXw
            min: new Date(appWin.minMsec)
            max: new Date(appWin.maxMsec)
            format: "hh:mm"
            tickCount: 5
            labelsFont:Qt.font({pointSize: 10})
            labelsColor: appWin.baseFontColor
            color: appWin.graphTickColor
        }