文档章节

qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程

尘中远
 尘中远
发布于 2016/05/12 23:53
字数 828
阅读 535
收藏 0

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);

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


C++ GUI Qt 4编程(第二版) Qt中的C++技术 Qt5开发及实例 ARM9嵌入式系统设计直通车


© 著作权归作者所有

共有 人打赏支持
尘中远
粉丝 1
博文 26
码字总数 47436
作品 0
朝阳
程序员
私信 提问
应用程序中调用了Qcustomplot类,工程在添加Qt3D模块后出现了编译问题

本来未涉及Qt3D模块时,QCustomPlot类的调用和编译时是正常的,后来在工程中添加了Qt3D模块,编译就出现了关于静态声明等问题 D:\Programfiles\Qt\Qt5.6.0\5.6\mingw49_32\include\QtCore\q...

june_lee
2016/07/06
303
0
QT使用qcustomplot 绘制柱状图

今天因为需要在QT底下绘制一个柱状图,由于不想自己麻烦重载一个QWidget所以就在网上搜索到了QCustomPlot,按照这个项目主页的图像显示它是可以满足我的要求。 首先来看一下效果图(绘制风格...

quanwei9958
2014/11/13
0
10
qt项目中QVector动态数组无法添加值进去

qt的项目,里面添加了qcustomplot头文件和源文件,在整个工程里面所有使用QVector数组没有办法使用push__back()方法添加值,我声明的是一个QVector数组,使用了pushback()方法以后,添加进去...

Edison_M79
2018/06/06
271
4
Qt下创建图表绘制软件,实现对数据的分析,用哪种方法比较好?

想开发一款图表绘制软件,对外部导入的数据进行分析,根据数据绘制图表。数据的内容是时间-状态,所以图表的横轴为时间,纵轴为状态,但是这个状态是用颜色来表示的,不同的颜色代表不同的状...

z99monster
2014/04/28
552
1
QCustomPlot怎么用鼠标选择图线上的一个点,得到这个点对对应的数据

QCustomPlot怎么用鼠标选择图线上的一个点,得到这个点对对应的数据

Phwone
2015/01/13
2.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
15分钟前
3
0
Apollo配置详细步骤(Windows环境)

一. 准备工作 1.下载 apollo 安装包 下载链接:http://activemq.apache.org/apollo/download.html 2.下载 java JDK 安装包 ( apollo 依赖 java 环境) 下载链接:http://www.oracle.com/techn......

morpheusWB
36分钟前
3
0
聊聊flink的AsyncWaitOperator

序 本文主要研究一下flink的AsyncWaitOperator AsyncWaitOperator flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/operators/async/AsyncWaitOperator.java ......

go4it
今天
1
0
Java并发编程基础(四)

ThreadGroup 在主线程创建得线程,如果没有给他指定线程组,那么创建的线程,默认和主线程同一个线程组。线程组可以底下可以是线程,也可以实线程组。 构建线程组的方法: private ThreadGr...

chendom
今天
5
0
Scala学习(一)

学习Spark之前需要学习Scala。 参考学习的书籍:快学Scala

柠檬果过
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部