首页 > 解决方案 > 添加 CandlestickSet 时 ChartView 不刷新

问题描述

我有一个带有以下 QML 的示例应用程序:

ColumnLayout
{
    spacing: 5
    anchors.fill: parent

    ChartView {
        id: cv
        title: "Candlestick series"
        theme: ChartView.ChartThemeLight
        legend.alignment: Qt.AlignBottom
        antialiasing: true
        Layout.fillWidth: true
        Layout.fillHeight: true

        CandlestickSeries {
            id: series
            name: "Acme Ltd."
            increasingColor: "green"
            decreasingColor: "red"

            CandlestickSet { timestamp: 1435708800000; open: 6.90; high: 6.94; low: 5.99; close: 6.60 }
            CandlestickSet { timestamp: 1435795200000; open: 6.69; high: 6.69; low: 6.69; close: 6.69 }
            CandlestickSet { timestamp: 1436140800000; open: 4.85; high: 6.23; low: 4.85; close: 6.00 }
            CandlestickSet { timestamp: 1436227200000; open: 5.89; high: 6.15; low: 3.77; close: 5.69 }
            //CandlestickSet { timestamp: 1436313600000; open: 4.64; high: 4.64; low: 2.54; close: 2.54 }
        }
    }

    RowLayout
    {
        Layout.margins: 10
        spacing: 5

        Button
        {
            text: "Change"
            onClicked: series.at(2).open = 3
        }

        Button
        {
            text: "Add"
            onClicked: {
                var set = Qt.createQmlObject('import QtCharts 2.2; CandlestickSet {}', series, "dynamicSnippet1");
                set.timestamp = 1436313600000
                set.open = 4.64
                set.high = 4.64
                set.low = 2.54
                set.close = 2.54
                var ret = series.append(set)
                console.log("ret=", ret, set)
            }
        }
    }
}

当我按下Change按钮时,第二根蜡烛会改变并ChartView刷新,但是当我按下Add按钮set对象时,会series.append返回true,但ChartView不会刷新。

我错过了什么?

我的QT版本是6.2

标签: qtcharts

解决方案


推荐阅读