1.概述

QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用,远比qwt方便和漂亮,可以自己使用两个源文件也可以自己编译成库文件,非常方便。

官方网站:http://www.qcustomplot.com/

1.0下载地址:http://download.csdn.net/detail/czyt1988/5986701

下面展示一下它的超强功能:

1.安装

使用QCustomPlot非常简单,只需要把qcustomplot.cpp和qcustomplot.h拷贝到工程目录下,然后把这两个文件引入工程项目即可

在项目中点右键添加现有文件,把两个文件加入工程

这时pro文件会添加上qcustomplot.cpp和qcustomplot.h,这时还需要添加的是

QT += widgets printsupport

由于使用到打印相关,所以需要加入printsupport,在原有的widgets 后面加入即可

这时就可以使用QCustomPlot了。

为了能在ui designer里面使用QCustomPlot,可以使用一个Widget窗体在ui设计器上,对这个窗体点击右键,选择提升为

把提升的类名填写为QCustomPlot即可,这样就可以使用了,使用就和我们用普通控件一样,ui->xxx->……

2.绘图

QCustomPlot的绘图过程非常非常简单。和大部分的绘图控件相似,绘图时首先需要有一个图形,或者说是图层,通过addGraph即可添加一个曲线图层,此函数返回这个曲线图层的指针,或者通过曲线索引来找到,所有添加的曲线都放置在一个list里面,如果是第一个添加的话,那么这个索引就是0了,

customPlot->graph(0)

当然每个曲线最好给它定义一个名字方便查找

可以使用setName和name函数分别设置和获取曲线的名字

添加完曲线即可对这个曲线设置数据,QCustomPlot用于绘制趋势图非常方便

直接使用函数setData即可设置数据,

void setData
(QCPDataMap*data, bool copy=false)
void setData (const QVector<double > &key,
const QVector<double > &value)

只要有个x,y等长度的vector数据即可轻松绘图

也可以追加数据

void addData (const QCPDataMap&dataMap)
void addData (const QCPData&data)
void addData (double key,double value)
void addData (const QVector<double > &keys, const QVector<double > &values)

QCustomPlot这个类设计的非常清晰明了,离散化程度不高,非常易用

设置完数据后可以对x,y轴进行设置

customPlot->xAxis->setLabel("x");
customPlot->yAxis->setLabel("y");

或者设置x,y轴的范围

customPlot->xAxis->setRange(-1,1);
customPlot->yAxis->setRange(0,1);

如果你不清楚范围,而已使用

QCustomPlot::rescaleAxes()函数,它会自动设置最合适的显示范围,非常简便。

设置完成后即可显示图像

使用QCustomPlot::replot函数使图像进行重绘,show函数也会触发重绘事件。

效果:

这时绘制出来的图像是不能移动或者是放大缩小的,QCustomPlot可以很简单实现移动和放大缩小功能

使用QCustomPlot的函数setInteractions即可

setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);

这样就能实现移动和缩放了

qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程的更多相关文章

  1. 采用Qt快速绘制多条曲线(折线),跟随鼠标动态显示线上点的值(基于Qt的开源绘图控件QCustomPlot进行二次开发)

    QCustomPlot是一个开源的基于Qt的第三方绘图库,能够绘制漂亮的2D图形. QCustomPlot的官方网址:https://www.qcustomplot.com/ 从官网下载QCustom ...

  2. paper 139:qt超强绘图控件qwt - 安装及配置

    qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图.它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式 ...

  3. Qt实现表格树控件-支持多级表头

    目录 一.概述 二.效果展示 三.实现方式 四.多级表头 1.数据源 2.表格 3.QStyledItemDelegate绘制代理 五.测试代码 六.相关文章 原文链接:Qt实现表格树控件-支持多级表 ...

  4. PaintView 绘图控件解析

    博客地址:博客园,版权所有,转载须联系作者. GitHub地址:JustWeTools 最近做了个绘图的控件,实现了一些有趣的功能. 先上效果图: PaintView画图工具: 1.可直接使用设定按钮 ...

  5. 怎样在VS2013/MFC中使用TeeChart绘图控件

    TeeChart作为一款强大好用的绘图控件,通过它可以绘制出各式各样的图表,包括2D的,还有3D的,绘制的图表美观实用,这里主要讲述如何在VS2013/MFC中使用TeeChart控件,顺便说一下在V ...

  6. 在Qt中使用ActiveX控件

    Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控件,并且也开发基于Qt的ActiveX控件.ActiveQt包含了两个组件QA ...

  7. Qt 开发 MS VC 控件终极篇

    Qt 开发 MS VC 控件终极篇 1. 使用 MSVC2015 通过项目向导创建 Qt ActiveQt Server 解决方案 项目配置:以下文件需要修改 1. 项目属性页->项目属性-&g ...

  8. Android开源的精美日历控件,热插拔设计的万能自定义UI

    Android开源的精美日历控件,热插拔设计的万能自定义UI UI框架应该逻辑与界面实现分离,该日历控件使用了热插拔的设计 ,简单几步即可实现你需要的UI效果,热插拔的思想是你提供你的实现,我提供我的 ...

  9. Qt中使用ActiveX控件

    (转自:http://blog.csdn.net/tingsking18/article/details/5403038) 在Qt中使用ActiveX控件 Qt的windows商业版本提供了Activ ...

随机推荐

  1. Samba通过ad域进行认证并限制空间大小《转载》

    本文实现了samba服务被访问的时候通过windows域服务器进行用户名和密码验证;认证通过的用户可以自动分配500M的共享空间;在用户通过windows域登陆系统的时候可以自动把这块空间映射成一块硬 ...

  2. Linux查看网络即时网速

    sar -n DEV 1 100 1代表一秒统计并显示一次 100代表统计一百次 使用ntop等工具,就更方便简单了,不过这个更灵活 P.S. sar在sysstat包 来源:http://www.c ...

  3. css3 content画出各种图形

    原链接:http://www.phpjz.cn/web/201311/1700.html 之前看到一些网站用户content这个词,觉得很奇怪,原来是css3新增的一个样式,发现还挺好用的,特别是用移 ...

  4. 调用百度地图API实现手机自动定位 (逆地址解析)

    //声明地址解析器 var geoc = new BMap.Geocoder(); //自动定位 var autoLocation = function () { if (navigator.geol ...

  5. AndroidAnnotations框架配置

    如今Android Studio的普及,Android开发基本要舍弃Eclipse了,最近使用AndroidAnnotations 注解框架的时候,找了些资料慢慢整出来了,在这给大家简单分享一下: 首 ...

  6. MySQL 数据库入门操作

    启动mysqld:在命令行启动mysql时,如不加"--console",启动.关闭信息不在界面中显示,而是记录在安装目录下的data目录里,文件名一般是hostname.err, ...

  7. untiy绘制网格mesh

    关于绘制网格, 雨松前辈 已经解释的非常的到位,这里我只是搬运工,实在是感觉自己去描述的话不会有雨松大神描述的清楚,该文章循序渐进,一步步引导读者去理解unirty 绘图机制,真的是没有比这个再好得了 ...

  8. 初学QML之qmlRegisterType

    qmlRegisterType 是一个可以将C++实现的类在QML中调用的,连接C++和QML的一个工具 首先来看QtAssistant的介绍 int qmlRegisterType(const ch ...

  9. (原)python中import caffe提示no module named google.protobuf.internal

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5993405.html 之前在一台台式机上在python中使用import caffe时,没有出错.但是 ...

  10. js工厂模式

    设计工厂模式是为了创建对象.通常在类或者类的静态方法中实现,具有两个目标.其中一个是:当创建相似对象时执行重复操作: 另外一个目标是:编译时不知道具体类型(类)的情况下,为工厂客户提供一种创建对象的接 ...