目录
QCustomPlot提供了丰富的功能用来将数据显示为图。这里提供一个实例,展示如何显示曲线。并提供代码下载(4条消息) QCustomPlot示例-C++文档类资源-CSDN文库https://download.csdn.net/download/liji_digital/87641955
核心代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_pCurve = new QCustomPlot;
setCentralWidget(m_pCurve);
initGraph();
vReadData();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::initGraph(void)
{
//背景色
m_pCurve->setBackground(QBrush(QColor(0,0,0)));
m_pCurve->xAxis->setLabel("X");//x轴名称
m_pCurve->yAxis->setLabel("Y");//y轴名称
m_pCurve->xAxis->setLabelColor(QColor(255, 255, 255));//坐标轴名称的颜色
m_pCurve->yAxis->setLabelColor(QColor(255, 255, 255));
//坐标轴刻度标注的颜色
m_pCurve->xAxis->setTickLabelColor(QColor(255, 255, 255));
m_pCurve->yAxis->setTickLabelColor(QColor(255, 255, 255));
//坐标轴的颜色
QPen pen1 = m_pCurve->xAxis->basePen();
pen1.setColor(QColor(255, 255, 255));
m_pCurve->xAxis->setTickPen(pen1);
m_pCurve->xAxis->setBasePen(pen1);
m_pCurve->xAxis->setSubTickPen(pen1);
QPen pen2 = m_pCurve->yAxis->basePen();
pen2.setColor(QColor(255, 255, 255));
m_pCurve->yAxis->setTickPen(pen2);
m_pCurve->yAxis->setBasePen(pen2);
m_pCurve->yAxis->setSubTickPen(pen2);
m_pCurve->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom );
QCPGraph * pGraph = m_pCurve->addGraph();//返回值就是m_pCurve->graph(0)
if(pGraph)
{
pGraph->setPen(QPen(QColor(255,0,0)));
}
}
void MainWindow::vReadData(void)
{
QVector<double> vecX, vecY;
for(int k = 0; k < 100; k++)
{
vecX.push_back(k);
vecY.push_back(k*2);
}
QCPGraph * pGraph = m_pCurve->graph(0);
if(pGraph)
{
pGraph->setData(vecX, vecY);
m_pCurve->rescaleAxes();
m_pCurve->replot();
}
}
效果
注意事项
QCustomPlot依赖 QPrintSupport模块,要在pro文件里加入该模块
完整工程在我的资源里下载。