You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在QML中创建CandlestickSet对象实例并添加到CandlestickSeries?

解决方法

有两种常用的实现方案:


方式1:直接在点击事件中动态创建QML对象

直接修改addButton的点击事件逻辑即可,代码示例如下:

Button {
    id: addButton
    text: "Add"
    onClicked: {
        // 动态创建CandlestickSet实例
        let newSet = Qt.createQmlObject(`
            import QtCharts 2.15 // 版本和你项目引入的QtCharts版本保持一致即可
            CandlestickSet {
                timestamp: Date.now() // 可替换为业务需要的自定义时间戳
                open: 5.2
                high: 6.8
                low: 4.9
                close: 6.1
            }
        `, series, "dynamicCandlestickSet");
        // 添加到蜡烛图序列
        series.append(newSet);
    }
}

方式2:提前定义组件模板(更推荐,适合多次添加场景)

这种方式不需要每次创建都解析QML字符串,性能更好,属性赋值更直观:

  1. 首先在QML文件根节点下提前定义组件模板:
// 和ChartView同级放置即可
Component {
    id: candlestickSetTemplate
    CandlestickSet {}
}
  1. 再修改addButton的点击事件:
Button {
    id: addButton
    text: "Add"
    onClicked: {
        let newSet = candlestickSetTemplate.createObject(series, {
            "timestamp": Date.now(),
            "open": 5.2,
            "high": 6.8,
            "low": 4.9,
            "close": 6.1
        });
        series.append(newSet);
    }
}

如果后续需要删除动态创建的蜡烛图数据,调用newSet.destroy()即可释放内存。


内容的提问来源于stack exchange,提问作者Dmitriano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:36:07