案例建網(wǎng)站網(wǎng)址域名ip查詢(xún)
一 版本說(shuō)明
二 完成示例
此文章包含:曲線軸設(shè)置,曲線切換,單條曲線顯示,坐標(biāo)軸。。。
三 曲線圖UI創(chuàng)建
在UI界面拖放一個(gè)QWidget,然后在 Widget里面放一個(gè) graphicsView
四 代碼介紹
1 頭文件
#include <QString>
#include <QTimer>
#include <QMessageBox>
#include <QDateTime>
#include <QFile>
#include <QFileDialog>
#include <QDebug>
#include <QFileInfo>
#include <QSerialPortInfo>
#include <QtSerialPort/QSerialPort>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QValueAxis>
#include <QPointF>
#include <QAxObject>
#include <QChartView>
#include <QtMath>
#include <QMimeData>//曲線函數(shù)聲明 一定要包含
QT_CHARTS_USE_NAMESPACE#define MAX_X (15) //X軸長(zhǎng)度
#define X_LEN (15) //X分辨率
#define Y_LEN (10) //Y分辨率#define TEC_MIN_Y (-10) //Y軸最小長(zhǎng)度
#define TEC_MAX_Y (85) //Y軸最大長(zhǎng)度QTimer *timer1;//用作曲線點(diǎn)定時(shí)添加QLabel *label_coordinate;//坐標(biāo)顯示QGraphicsLineItem *x_line, *y_line;//十字線double qcuisition_interval;//采樣時(shí)間間隔 我這里采用分鐘記數(shù),所以一秒鐘累加 1.0f / 60.0fdouble record_x_min, record_x_max;//X軸記錄點(diǎn)//兩條線段
QChart tec_1_2_temperature_chart;
QValueAxis tec_1_2_temperature_axisX, tec_1_2_temperature_axisY;//X軸和Y軸
QLineSeries line_tec_1_2_set_temperature[2], line_tec_1_2_current_temperature[2];//設(shè)置溫度,實(shí)時(shí)溫度
QString line_tec_1_2_set_temperature_name[2] = {"TEC1設(shè)置", "TEC2設(shè)置"};
QString line_tec_1_2_current_temperature_name[2] = {"TEC1實(shí)時(shí)", "TEC2實(shí)時(shí)"};
QPen line_tec_1_2_set_temperature_clocr[2] = {QColor(237, 28, 36), QColor(181, 206, 212)};
QPen line_tec_1_2_current_temperature_cloor[2] = {QColor(255, 127, 39), QColor(63, 72, 204)};
double tec_1_2_temperature_record_y_min = TEC_MIN_Y, tec_1_2_temperature_record_y_max = TEC_MAX_Y;//記錄X,Y位置
double tec_1_2_temperature_count = 0;//記錄當(dāng)采集點(diǎn)
2 cpp文件
2.1 初始化函數(shù)
/**
* @brief 曲線圖 初始化
* @param char圖表類(lèi)
* @param axisx:X軸
* @param x_name:x軸名字
* @param axisy:Y軸
* @param y_min:Y軸最小長(zhǎng)度
* @param y_max:Y軸最大長(zhǎng)度
* @param y_name:Y軸名字
* @retval None
*/
void interface_chart::Chart_Init(QChart &chart,QValueAxis &axisx, QString x_name,QValueAxis &axisy, int y_min, int y_max, QString y_name)
{int font_size = 11;QFont font("Microsoft YaHei", font_size);//微軟雅黑chart.legend()->setFont(font); // 設(shè)置字體及大小chart.setAnimationOptions(QChart::SeriesAnimations);//移動(dòng)動(dòng)畫(huà)//設(shè)置坐標(biāo)軸顯示的范圍axisx.setMin(0);axisx.setMax(MAX_X);axisy.setMin(y_min);axisy.setMax(y_max);//設(shè)置坐標(biāo)軸上的格點(diǎn)axisx.setTickCount(X_LEN + 1);axisy.setTickCount(Y_LEN);//設(shè)置坐標(biāo)軸字體大小axisx.setTitleFont(font);axisx.setLabelsFont(font);axisy.setTitleFont(font);axisy.setLabelsFont(font);//設(shè)置名字axisx.setTitleText(x_name);axisy.setTitleText(y_na