1、QCustomPlot介绍 
QCustomPlot是一个小型的Qt画图标类,支持绘制静态曲线、动态曲线、多重坐标曲线,柱状图,蜡烛图等。只需要在项目中加入头文件qcustomplot.h和qcustomplot.cpp文件,然后使一个widget提升为QCustomPlot类,即可使用。

QCustomPlot官网:

http://www.qcustomplot.com/

例子与说明:

https://www.qcustomplot.com/index.php/tutorials/basicplotting
1
QCustomPlot下载地址:

http://www.qcustomplot.com/index.php/download 
1
QCustomPlot帮助文件 
QCustomPlot源码包中,有QCustomPlot帮助文件,将其添加进Qt帮助文件,如图,点击添加按钮,在下载的QCustomPlot源码包中找到qch为后缀的文件进行添加。


2、简单例子详解:

建立Qt工程,将下载的QCustomPlot源码中的qcustomplot.h和qcustomplot.cpp文件复制到项目所在文件夹,如图


QtCreater中,右键项目,添加现有文件,如图,选择qcustomplot.h和qcustomplot.cpp添加: 

在UI界面拖入一个widget,如图

UI界面右键widget,点击提升为,选择全局包含,如图


 
这里强调一下:Qt提升控件时,通常提升的类名称中,每个单词的首字母必须大写【与Qt控件命名规则保持一致,各种第三方控件都采用这种命名格式】,否则无法识别,如这里必须写成QCustomPlot而不能写成Qcustomplot或qcustomplot 
另一种简单方法是将被提升类的名称直接复制过来粘贴。
选择项目的.pro文件,添加printsupport,如图,QCustomPlot包含了一些打印的东西,如果没有这一步,程序会报错 
-
最后一步,编写代码: 
头文件:
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include "qcustomplot.h"
namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

cpp文件:

#include "widget.h"
#include "ui_widget.h"
#include <QVector>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this); 
        //设定背景为黑色
        //ui->widget->setBackground(QBrush(Qt::black));
        //设定右上角图形标注可见
        ui->widget->legend->setVisible(true);
        //设定右上角图形标注的字体
        ui->widget->legend->setFont(QFont("Helvetica", 9));
        QVector<double> x(101),y(101);
            //图形为y=x^3
            for(int i=0;i<101;i++)
            {
                x[i] = i/5.0-10;
                y[i] = x[i]*x[i]*x[i];//qPow(x[i],3)
            }
            //添加图形
            ui->widget->addGraph();
            //设置画笔
            ui->widget->graph(0)->setPen(QPen(Qt::blue));
            //设置画刷,曲线和X轴围成面积的颜色
             ui->widget->graph(0)->setBrush(QBrush(QColor(255,255,0)));
            //设置右上角图形标注名称
            ui->widget->graph(0)->setName("曲线");
            //传入数据,setData的两个参数类型为double
            ui->widget->graph(0)->setData(x,y);

QVector<double> temp(20);
            QVector<double> temp1(20);
            //图形为y = 100*x;
            for(int i=0;i<20;i++)
            {
                temp[i] = i;
                temp1[i] = 10*i+10;
            }
            //添加图形
            ui->widget->addGraph();
            //设置画笔
            ui->widget->graph(1)->setPen(QPen(Qt::red));
            //设置画刷,曲线和X轴围成面积的颜色
            //ui->widget->graph(1)->setBrush(QBrush(QColor(0,255,0)));  
            //传入数据
            ui->widget->graph(1)->setData(temp,temp1);

/*-------------------------------------------*/
            //画动态曲线时,传入数据采用addData,通过定时器多次调用,并在之后调用ui->widget->replot(); 
            //动态曲线可以通过另一种设置坐标的方法解决坐标问题: 
            //setRange ( double  position, double  size, Qt::AlignmentFlag  alignment  )  
            //参数分别为:原点,偏移量,对其方式,有兴趣的读者可自行尝试,欢迎垂询  
            /*-------------------------------------------*/

//设置右上角图形标注名称
            ui->widget->graph(1)->setName("直线");
            //设置X轴文字标注
            ui->widget->xAxis->setLabel("time");
            //设置Y轴文字标注
            ui->widget->yAxis->setLabel("temp/shidu");
            //设置X轴坐标范围
            ui->widget->xAxis->setRange(-20,20);
            //设置Y轴坐标范围
            ui->widget->yAxis->setRange(-1100,1100);
            //在坐标轴右侧和上方画线,和X/Y轴一起形成一个矩形
            ui->widget->axisRect()->setupFullAxesBox(); 
}

Widget::~Widget()
{
    delete ui;
}
效果如图:

--------------------- 
原文:https://blog.csdn.net/qq_40194498/article/details/79666903

Qt-QCustomplot画静态、动态曲线教程图解相关推荐

  1. python画曲线-python绘制动态曲线教程

    从txt种获取数据 并且通过动态曲线显示 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation ...

  2. 支付宝扫码到银行卡的收款码(隐藏卡号)静态+动态 制作教程分享

    当前业界普遍使用的微信.支付宝.第三方.第四方收款渠道,正遭大规模的封号.冻结.卡

  3. (一)QCustomPlot常见属性设置、多曲线绘制、动态曲线绘制、生成游标、矩形放大等功能实现

    系列文章目录 提示:这里是该系列文章的所有文章的目录 第一章: (一)QCustomPlot常见属性设置.多曲线绘制.动态曲线绘制.生成游标.矩形放大等功能实现 第二章: (二)QCustomPlot ...

  4. 【QCustomPlot】1.2 - QCustomPlot绘制静态曲线、常用函数的功能说明

    使用QCustomPlot绘制静态曲线.并对常用函数的功能进行说明. 大部分参照别人博客,以在代码工程中附上了链接. 我的学习例程仓库,GitHub:QCustomPlot 学习例程下载 绘图坐标轴布 ...

  5. Qt学习:QtCharts绘制动态曲线,实时更新数据与坐标轴

    前言:很久之前写了这篇文章后一直未进行修改更新,最近重新整理了代码和扩展了使用方式.代码路径见github: https://github.com/LYH-ux/Qt_Projects.git ,下文 ...

  6. 用python画星空图教程水粉_水粉画教程:水粉画星空教程图解

    梵高的一幅<星空>,让很多画家开始将目光转向更遥远的世界.星空,因此成了很多画画爱好者笔下的宠儿.本文水粉画教程:水粉画星空教程图解,不是梵高的<星夜>.只是纯粹的教教大家怎么 ...

  7. Qt qextserial进行串口数据采集,qcustomplot进行绘图,曲线实时显示横纵坐标辅助线

    Qt qextserial进行串口数据采集,qcustomplot进行绘图,曲线实时显示横纵坐标辅助线 目的.要求: A.读取RS422接口接收到的全部数据: 1.通过接口读取板卡采集的数据,采用多线 ...

  8. Python之plt.show()不显示图片画loss曲线教程

    目录 plt.show()之后不显示图片的问题 画loss曲线教程 plt.show()之后不显示图片的问题 1. 如果系统为windows等系统,那就看别的教程吧(因为我没有遇到过这类问题),比如: ...

  9. pyqt5 Qt Designer + PyqtGraph画图显示动态曲线

    PyQt5 Qt Designer 使用PyqtGraph画图显示动态曲线 源码示例下载 传送门 效果图: 导入pyqt5库: pip install PyQt5==5.15.4 -i https:/ ...

最新文章

  1. 微服务软件架构的认识和设计模式
  2. couchdb 自动生成html,如何在CouchDB中使用html模板
  3. 新换密交友玩法月老盲盒微信小程序源码_支持分销支付等功能
  4. 【转】数据安全优秀思想
  5. 什么是微型计算机的组成原理,1微型计算机基本组成原理.ppt
  6. 理解NLP中的卷积神经网络(CNN)
  7. ElementUI:路由界面刷新后导航栏仍显示default-active不跟随路由变化
  8. 系统常用 Intent 合集
  9. android 版本权限差别,安卓手机root前后有什么区别 root后哪些高权限操作
  10. 2048小游戏后端的实现
  11. [转载]hostapd配置解析
  12. Java程序员修炼之道 人民邮电出版社 吴海星译
  13. 秉火429笔记之二寄存器
  14. 【camera】【ISP】Lens Shading Correction镜头阴影校正
  15. flex 布局列表自动换行
  16. 江西财经计算机科学与技术怎么样,江西财经大学现代经济管理学院计算机科学与技术专业课有哪些...
  17. VLC 0.1.99 源码分析
  18. 计算机黑屏但是有鼠标,电脑黑屏但是能看到鼠标怎么办
  19. 3D U-Net论文笔记
  20. 订单管理系统c语言课程设计,C语言课程设计订单管理系统资料.doc

热门文章

  1. UnityWebRequest downloadhandler null的问题
  2. php天花板好吗,天花板的钢筋都露出来了,还以为不要紧!老公后怕:安全隐患太大...
  3. 机器学习之决策树学习笔记
  4. 万用表的正确使用方法
  5. 用mysql打开.sql_怎么用mysql打开sql文件
  6. 【Java进阶营】10道经典java面试题_实习生必问
  7. 7月第2周回顾:Google四面出击 华为跻身全球五大
  8. psql :致命错误:用户postgres Password 认证失败
  9. 安装 Win10+GTX1050ti+cuda8.0+cuDNN v7.1.4
  10. WPS AI 体验申请流程(附视频教程)