文章目录
- 原文
- 1. 下载qcustomplot.h与qcustomplot.cpp后,将代码文件拷贝到本地工程,并添加到工程项目
- 2. 看到文件后就是添加成功了
- 3. 在界面中拖拽一个Widget控件,选中并右键选中“提升为”,将原来的Widget控件已成为一个带坐标的 CustomPlot 控件
- 4. 添加printsupport
原文
QCustomPlot绘图类详解(大白话)
1. 下载qcustomplot.h与qcustomplot.cpp后,将代码文件拷贝到本地工程,并添加到工程项目
2. 看到文件后就是添加成功了
3. 在界面中拖拽一个Widget控件,选中并右键选中“提升为”,将原来的Widget控件已成为一个带坐标的 CustomPlot 控件
如果是代码方式添加就不需要对控件提升的这布操作,直接使用QCustomPlot 类声明对象即可。如
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QCustomPlot *pCustomPlot = new QCustomPlot(this);
pCustomPlot->resize(300, 300);
}
4. 添加printsupport
如果Qt版本在5.0以上,需要在.pro文件中的QT变量加上printsupport:
QT += widgets printsupport
我是vs开发,所以进行工程配置
.cpp
#include "QcustomPlotApplication.h"
#include "ui_QcustomPlotApplication.h"
#include "qcustomplot.h"
//防止中文乱码
//#pragma execution_character_set("utf-8")
#define PT_CNT 200 // 点数
#define GRAPH_CNT 5 // 图数
QcustomPlotApplication::QcustomPlotApplication(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
InitForm();
mRefreshCnt = 1;
//连接信号槽
connect(ui.btnDynamicDraw,&QPushButton::clicked,this,&QcustomPlotApplication::btnDynamicDraw_clicked);
connect(ui.btnContinueDraw, &QPushButton::clicked, this, &QcustomPlotApplication::btnContinueDraw_clicked);
}
QcustomPlotApplication::~QcustomPlotApplication()
{
}
void QcustomPlotApplication::InitForm()
{
//设置图表交互,允许用户通过拖动缩放来与图表进行交互
//QCP::iRangeDrag允许拖动图表(改变可见范围),而QCP::iRangeZoom允许通过鼠标滚轮或手势缩放图表。
ui.plotWidget->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);
#if 0
//设置背景颜色
ui.plotWidget->setBackground(QBrush(QColor("#2F4F4F")));
//设置X轴标签为电流
ui.plotWidget->xAxis->setLabel(QStringLiteral("电流"));
//设置Y轴标签为时间(min)
ui.plotWidget->yAxis->setLabel(QStringLiteral("时间(min)"));
//设置字体
QFont plotFont = font();
//设置字体大小
plotFont.setPointSizeF(10.0