天天看點

項目記錄 - Qt QCustomPlot 實時動态資料曲線圖,以時間為X軸,資料為Y軸(一)源碼連接配接:

QCustomPlot的基礎參考此作者的文章

https://blog.csdn.net/qq_40194498/article/details/79666903

關于QCustomPlot的坑

  • 在pro檔案中加入,如果沒有加入printsupport,編譯将會報錯!
    QT += printsupport
               
  • 可重載源檔案函數,實作更多功能

項目要求:

  • 以時間為X軸,不斷更新
  • Y軸為資料
  • 可選擇顯示的資料
  • 資料觀測,可暫停滾動,Y軸區間變化
  • Qt5.9.3 + QCustomPlot,QWidget項目

效果圖:

項目記錄 - Qt QCustomPlot 實時動态資料曲線圖,以時間為X軸,資料為Y軸(一)源碼連接配接:
項目記錄 - Qt QCustomPlot 實時動态資料曲線圖,以時間為X軸,資料為Y軸(一)源碼連接配接:
項目記錄 - Qt QCustomPlot 實時動态資料曲線圖,以時間為X軸,資料為Y軸(一)源碼連接配接:

做了一個小Demo,還在測試中,之後新加的功能再上傳

源碼連接配接:

https://download.csdn.net/download/qq_38159549/12288853

關于QCustomPlot繪圖

1、通過addGraph即可添加一個曲線圖層,此函數傳回這個曲線圖層的指針,或者通過曲線索引來找到,所有添加的曲線都放置在一個list裡面,如果是第一個添加的,那麼索引就是0了,

customPlot->graph(0)
           

2、使用setName和name函數分别設定和擷取曲線的名字

添加完曲線即可對這個曲線設定資料,QCustomPlot用于繪制趨勢圖非常友善

直接使用函數setData即可設定資料

void setData(QCPDataMap*data, bool copy=false)
void setData (const QVector<double > &key, const QVector<double > &value)
           

隻要有個x,y等長度的vector資料即可輕松繪圖

也可以追加資料

void addData (const QCPDataMap&dataMap)
void addData (const QCPData&data)
void addData (double key,double value)
void addData (const QVector<double > &keys, const QVector<double >&values)
           

3、設定完資料後可以對x,y軸進行設定

customPlot->xAxis->setLabel("x");
customPlot->yAxis->setLabel("y");
           

或者設定x,y軸的範圍

customPlot->xAxis->setRange(-1,1);
customPlot->yAxis->setRange(0,1);
           

QCustomPlot::rescaleAxes()函數,它會自動設定最合适的顯示範圍,非常簡便。

設定完成後即可顯示圖像

使用QCustomPlot::replot函數使圖像進行重繪,show函數也會觸發重繪事件。

Qt

繼續閱讀