第一步:在.pro文件中添加: QT +=charts
第二步:添加頭文件:#include <QtCharts>
第三步:繪製靜態的折線圖
在看到這個之前,我查過很多QChart的使用方法,譬如有一個需要添加命名空間的(QT_CHARTS_USE_NAMESPACE),還有提升部件的,我也都運行過了,是可以實現的。
這段代碼很詳細,常用的繪圖函數差不多都有,使用這個方法的時候,我沒有加命名空間,也運行成功了。(個人見解)
//類似於QGraphicsView組件,用來顯示曲線
QChartView *chartView = new QChartView(this);
QChart *chart = new QChart();
chart->setTitle("簡單函數曲線");
chartView->setChart(chart);//設置新chart,會自動清除之前的chart
setCentralWidget(chartView);//將 QChartView部件居中
//創建曲線序列
QLineSeries *series0 = new QLineSeries();
QLineSeries *series1 = new QLineSeries();
series0->setName("sin曲線");
series1->setName("cos曲線");
chart->addSeries(series0);
chart->addSeries(series1);
//序列添加數值
qreal t = 0, y1, y2, intv = 0.1;
int cnt = 200;
for(int i = 0; i < cnt; ++i){
y1 = qSin(t);//真好,連頭文件都不用添加了,嘻嘻嘻
series0->append(t, y1);
y2=qCos(t);
series1->append(t,y2);
t+=intv; //每次角度增加
}
//創建座標
QValueAxis *axisX = new QValueAxis;
axisX->setRange(0, 10);//設置座標軸範圍
axisX->setTitleText("time(secs)");//標題
axisX->setLabelFormat("%.1f"); //標籤格式:每個單位保留1位小數
axisX->setTickCount(20); //主分隔個數:0到10分成20個單位
axisX->setMinorTickCount(4); //每個單位之間繪製了多少虛網線
QValueAxis *axisY = new QValueAxis; //Y 軸
axisY->setRange(-2, 2);
axisY->setTitleText("value");
axisY->setLabelFormat("%.2f"); //標籤格式
axisY->setTickCount(10);
axisY->setMinorTickCount(4);
//爲序列設置座標軸
chart->setAxisX(axisX, series0);
chart->setAxisY(axisY, series0);
chart->setAxisX(axisX, series1);
chart->setAxisY(axisY, series1);