Qt-QCustomplot画静态、动态曲线教程图解
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画静态、动态曲线教程图解相关推荐
- python画曲线-python绘制动态曲线教程
从txt种获取数据 并且通过动态曲线显示 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation ...
- 支付宝扫码到银行卡的收款码(隐藏卡号)静态+动态 制作教程分享
当前业界普遍使用的微信.支付宝.第三方.第四方收款渠道,正遭大规模的封号.冻结.卡
- (一)QCustomPlot常见属性设置、多曲线绘制、动态曲线绘制、生成游标、矩形放大等功能实现
系列文章目录 提示:这里是该系列文章的所有文章的目录 第一章: (一)QCustomPlot常见属性设置.多曲线绘制.动态曲线绘制.生成游标.矩形放大等功能实现 第二章: (二)QCustomPlot ...
- 【QCustomPlot】1.2 - QCustomPlot绘制静态曲线、常用函数的功能说明
使用QCustomPlot绘制静态曲线.并对常用函数的功能进行说明. 大部分参照别人博客,以在代码工程中附上了链接. 我的学习例程仓库,GitHub:QCustomPlot 学习例程下载 绘图坐标轴布 ...
- Qt学习:QtCharts绘制动态曲线,实时更新数据与坐标轴
前言:很久之前写了这篇文章后一直未进行修改更新,最近重新整理了代码和扩展了使用方式.代码路径见github: https://github.com/LYH-ux/Qt_Projects.git ,下文 ...
- 用python画星空图教程水粉_水粉画教程:水粉画星空教程图解
梵高的一幅<星空>,让很多画家开始将目光转向更遥远的世界.星空,因此成了很多画画爱好者笔下的宠儿.本文水粉画教程:水粉画星空教程图解,不是梵高的<星夜>.只是纯粹的教教大家怎么 ...
- Qt qextserial进行串口数据采集,qcustomplot进行绘图,曲线实时显示横纵坐标辅助线
Qt qextserial进行串口数据采集,qcustomplot进行绘图,曲线实时显示横纵坐标辅助线 目的.要求: A.读取RS422接口接收到的全部数据: 1.通过接口读取板卡采集的数据,采用多线 ...
- Python之plt.show()不显示图片画loss曲线教程
目录 plt.show()之后不显示图片的问题 画loss曲线教程 plt.show()之后不显示图片的问题 1. 如果系统为windows等系统,那就看别的教程吧(因为我没有遇到过这类问题),比如: ...
- pyqt5 Qt Designer + PyqtGraph画图显示动态曲线
PyQt5 Qt Designer 使用PyqtGraph画图显示动态曲线 源码示例下载 传送门 效果图: 导入pyqt5库: pip install PyQt5==5.15.4 -i https:/ ...
最新文章
- 微服务软件架构的认识和设计模式
- couchdb 自动生成html,如何在CouchDB中使用html模板
- 新换密交友玩法月老盲盒微信小程序源码_支持分销支付等功能
- 【转】数据安全优秀思想
- 什么是微型计算机的组成原理,1微型计算机基本组成原理.ppt
- 理解NLP中的卷积神经网络(CNN)
- ElementUI:路由界面刷新后导航栏仍显示default-active不跟随路由变化
- 系统常用 Intent 合集
- android 版本权限差别,安卓手机root前后有什么区别 root后哪些高权限操作
- 2048小游戏后端的实现
- [转载]hostapd配置解析
- Java程序员修炼之道 人民邮电出版社 吴海星译
- 秉火429笔记之二寄存器
- 【camera】【ISP】Lens Shading Correction镜头阴影校正
- flex 布局列表自动换行
- 江西财经计算机科学与技术怎么样,江西财经大学现代经济管理学院计算机科学与技术专业课有哪些...
- VLC 0.1.99 源码分析
- 计算机黑屏但是有鼠标,电脑黑屏但是能看到鼠标怎么办
- 3D U-Net论文笔记
- 订单管理系统c语言课程设计,C语言课程设计订单管理系统资料.doc
热门文章
- UnityWebRequest downloadhandler null的问题
- php天花板好吗,天花板的钢筋都露出来了,还以为不要紧!老公后怕:安全隐患太大...
- 机器学习之决策树学习笔记
- 万用表的正确使用方法
- 用mysql打开.sql_怎么用mysql打开sql文件
- 【Java进阶营】10道经典java面试题_实习生必问
- 7月第2周回顾:Google四面出击 华为跻身全球五大
- psql :致命错误:用户postgres Password 认证失败
- 安装 Win10+GTX1050ti+cuda8.0+cuDNN v7.1.4
- WPS AI 体验申请流程(附视频教程)