項目需要對Charts中的圖表動态的修改Series中資料的值,通過檢視幫助文檔,發現QML Charts中關于XYSeries的方法的說明如下圖,共7個方法,其中資料替換的方法replace隻寫了一種通過點的值進行替換的方法。

檢視ScatterSeries對應C++的源碼檔案declarativescatterseries_p.h,其中關于replace函數注冊了兩種方法,第一種為文檔中描述的根據點進行替換,第二種文檔中未進行闡述,根據點的index進行替換,如圖:
而通過檢視ScatterSeries等Series的父類 QXYSeries源碼後發現,QXYSeries提供了詳細的實作方法,感興趣的可自己檢視,如圖
是以根據資料index動态替換Series的資料的方法
replace(int index, qreal newX, qreal newY)
示例:
function resetSeries(){
for(var i=0;i<series.count;i++){
series.replace(i,i,100)
}
}
效果圖
注意:在Series中修改資料的值比remove後再insert效率要高很多,特别是資料量特别大的時候,remove的時候很可能界面就卡死了,是以在動态修改Series值首選替換資料值!