一、QCustomPlot的簡單配置
1 /* 清除所有曲線 */ 2 ui->curve->clearGraphs(); 3 /* 設置背景色 */ 4 ui->curve->setBackground(QBrush(QColor(255,255,255,0))); 5 6 #if 0 7 /* 設置右上角圖標可見 */ 8 ui->curve->legend->setVisible(true); 9 /* 設置右上角圖標字體 */ 10 ui->curve->legend->setFont(QFont("Helvetica", 9)); 11 /* 設置右上角圖標背景色 */ 12 ui->curve->legend->setBrush(QColor(255,255,255,0)); 13 #endif 14 /* 設置坐標軸標題 */ 15 ui->curve->xAxis->setLabel("時間(min)"); 16 ui->curve->xAxis->setLabelFont(QFont("Ubuntu",12)); 17 ui->curve->yAxis->setLabel("溫度(℃)"); 18 ui->curve->yAxis->setLabelFont(QFont("Ubuntu",12)); 19 20 /* 設置坐標軸標題顏色 */ 21 ui->curve->xAxis->setLabelColor(Qt::white); 22 ui->curve->yAxis->setLabelColor(Qt::white); 23 /* 設置坐標軸數字顏色 */ 24 ui->curve->xAxis->setTickLabelColor(Qt::white); 25 ui->curve->yAxis->setTickLabelColor(Qt::white); 26 /* 設置坐標軸顏色和線粗 */ 27 ui->curve->xAxis->setBasePen(QPen(QColor(255,128,4), 2)); 28 ui->curve->yAxis->setBasePen(QPen(QColor(255,128,4), 2)); 29 30 /* 設置坐標軸范圍 */ 31 QSharedPointer<QCPAxisTickerTime> timeTicker(new QCPAxisTickerTime); 32 timeTicker->setTimeFormat("%m"); 33 ui->curve->xAxis->setTicker(timeTicker); 34 /* 設置x軸范圍是1-3601s,即60分鍾 */ 35 ui->curve->xAxis->setRange(1, 3600); 36 /* 設置x軸分割線向外和分割線高度 */ 37 ui->curve->xAxis->setTickLength(0, 5); 38 ui->curve->xAxis->setSubTickLength(0, 3); 39 /* 設置x軸分割線的顏色和線粗 */ 40 ui->curve->xAxis->setTickPen(QPen(QColor(255,128,4),2)); 41 ui->curve->xAxis->setSubTickPen(QPen(QColor(255,128,4),2)); 42 43 /* 設置y軸范圍 */ 44 ui->curve->yAxis->setRange(0, 400); 45 /* 設置x軸分割線向外和分割線高度 */ 46 ui->curve->yAxis->setTickLength(0, 5); 47 ui->curve->yAxis->setSubTickLength(0, 0); 48 /* 設置y軸分割線的顏色和線粗 */ 49 ui->curve->yAxis->setTickPen(QPen(QColor(255,128,4),2)); 50 ui->curve->yAxis->setSubTickPen(QPen(QColor(255,128,4),2)); 51 52 /* 設置網格線的顏色為透明 */ 53 ui->curve->xAxis->grid()->setPen(QPen(QColor(255,255,255,0))); 54 ui->curve->yAxis->grid()->setPen(QPen(QColor(255,255,255,0))); 55 56 /* 添加圖形 */ 57 ui->curve->addGraph(); 58 /* 設置畫筆顏色 */ 59 ui->curve->graph(0)->setPen(QPen(Qt::green)); 60 /* 設置畫刷 曲線和x軸圍成面積的顏色 */ 61 //ui->curve->graph(0)->setBrush(QBrush(QColor(255,0,255))); 62 /* 設置右上角圖形標注名稱 */ 63 ui->curve->graph(0)->setName("溫度"); 64 for(int i = 0; i < 3600; i++) 65 { 66 /* 傳入數據*/ 67 ui->curve->graph(0)->addData(i, startFireValue); 68 } 69 70 /* 添加圖形 */ 71 ui->curve->addGraph(); 72 ui->curve->graph(1)->setPen(QPen(Qt::red, 2)); 73 ui->curve->graph(1)->setName("升溫曲線"); 74 /* 刷新曲線 */ 75 ui->curve->replot();
二、更多用法相關鏈接
https://www.qcustomplot.com/