Qt第三方库----QCustomPlot
一、软件下载
下载地址:http://www.qcustomplot.com/index.php/download
这里推荐下载第一个链接的内容:

注:这里的第三方库要放在非中文目录下。
二、配置
(1)、新建工程,并且添加头文件qcustomplot.h和源文件qcustomplot.cpp。

(2)、在工程pro文件末尾添加printsupport:
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
(3)、进入图形设计界面,添加widget控件,对着所添加的widget区域点击右键,选择“提升为”按钮,提升类名称输入“QCustomPlot”,点击添加。
(4)、运行程序,如下所示:

至此,QCustomPlot已经配置完毕。
注:默认情况下是x:0~4.8,y:0~4.8。
三、绘图
原理:
QCustomPlot是一个绘图板的类,它继承于Widget,界面中的Widget类提升为QCustomPlot才能够绘图。
QCustomPlot中的每一个曲线是一个Graph对象,凡是跟显示数据有关的就对Graph进行操作或调用Graph对象提供的方法。
一个QCustomPlot里有四个坐标轴,其中xAxis和yAxis就是我们上图看到的x和y坐标轴,还有两个坐标轴xAxis1和yAxis1为上方和右方的x、y坐标,默认隐藏,可以通过程序设计显示。
步骤:
(1)、首先将上面提升为QCustomPlot类的容器界面的对象widget重命名为qCustomPlot。
(2)、在主类Widget构造函数中添加如下代码,即可绘制一个标准标准的y=x^3的曲线。
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this); //定义两个可变数组存放绘图的坐标数据
QVector<double> x(101),y(101);//分别存放x和y坐标的数据,101为数据长度
//添加数据,我们这里演示y=x^3,为了正负对称,我们x从-10到+10
for(int i=0;i<101;i++)
{
x[i] = i/5 - 10;
y[i] = x[i] * x[i] * x[i];
} //向绘图区域QCustomPlot(从widget提升来的)添加一条曲线
ui->qCustomPlot->addGraph();
//添加数据
ui->qCustomPlot->graph(0)->setData(x,y); //设置坐标轴标签名称
ui->qCustomPlot->xAxis->setLabel("x");
ui->qCustomPlot->yAxis->setLabel("y"); //设置坐标轴显示范围,否则我们只能看到默认的范围
ui->qCustomPlot->xAxis->setRange(-11,11);
ui->qCustomPlot->yAxis->setRange(-1100,1100); //重绘,这里可以不用,官方例子有,执行setData函数后自动重绘
//我认为应该用于动态显示或者是改变坐标轴范围之后的动态显示,我们以后探索
//ui->qCustomPlot->replot(); }
图形如下所示:

说明:如果设置完x、y取值范围之后,显示结果仍然为默认范围(即x:0~4.8,y:0~4.8),那么原因在于没有把设置代码放在构造函数中(也就是说构造函数调用的仍然是默认的配置),只需要将初始化代码放在构造函数中即可。
Qt第三方库----QCustomPlot的更多相关文章
- Qt第三方库QCustomPlot——QCustomPlot解读
这个小部件类,对于QCustomPlot的所有方面都有所体现 下面阅读它的函数: 函数组织顺序为: 基本设置---添加图线---删除图线---添加额外Item---层次管理---坐标轴管理----导出 ...
- Qt第三方库libvlc-qt——ubuntu上编译、安装,测试
cmake 3.0编译安装(最低版本要求): sudo apt-get install ncurses-dev sudo apt-get install build-essential 下载cma ...
- 基于QT开发的第三方库
基于Qt开发的第三方库 分类: Qt2014-02-12 11:34 1738人阅读 评论(0) 收藏 举报 QT第三方库 目录(?)[+] 文章来源:http://blog.csdn.net ...
- 基于Qt的第三方库和控件
====================== 基于Qt的第三方库和控件 ====================== libQxt -------- http://dev.libqxt.o ...
- Qt编程可不可以结合其他的第三方库和本土API?(有zeroMQ的Qt封装,还可轻易使用Python的库)
作者:渡世白玉链接:http://www.zhihu.com/question/29030777/answer/59378712来源:知乎著作权归作者所有,转载请联系作者获得授权. 可以,十分可以,你 ...
- Qt使用第三方库
简述 在 Qt 中经常会用到第三方库,例如:FFmpeg.OpenCV 等.第三方库的使用比较简单,只需要一些基本的配置就可以搞定,一起来看看吧! 简述 第三方库 源代码 库文件 目标目录 第三方库 ...
- Qt使用第三方库3rdparty
简述 在 Qt 中经常会用到第三方库,例如:FFmpeg.OpenCV 等.第三方库的使用比较简单,只需要一些基本的配置就可以搞定,一起来看看吧! 简述 第三方库 源代码 库文件 目标目录 第三方库 ...
- Qt笔记——连接第三方库&用libZPlay库获取音频文件的艺术家、专辑等信息
连接第三方库libZPlay 概述 需要.a/.lib ,.h , .dll 三个文件 官网下载 http://libzplay.sourceforge.net/ import .h 链接 .a 放入 ...
- qt .pro文件和cmakelists.txt配置第三方库
.pro文件引用第三方库文件和头文件路径 1.库文件(LIBS添加的是共享库文件,-L添加目录,-l指定共享库名称) LIBS += -L/usr/local/lib -lmath LIBS的使用就是 ...
随机推荐
- IF-ELSE嵌套练习
一,1,编写程序,由键盘输入三个整数分别存入变量num1,num2,num3中,对它们进行排序,使用if-else结构,并按从小到大的顺序输出: package practice; import ja ...
- etcd租约机制
新建租约 新建一个过期时间为120s的租约 # etcdctl lease grant lease 018f6d7bb11aba0d granted with TTL(120s) 查看新建的租约信息 ...
- [转帖]vCenter 计划任务.
vSphere5.0实用小技巧-DPM计划任务 2013年05月12日 23:00:09 weixin_34185320 阅读数:9 https://blog.csdn.net/weixin_3418 ...
- 思考-继续思考在数据库中两个表join的问题
##在资源有限的情况下,如何做两个大表的join? --- 假设系统资源:内存1G,大表10G,小表2G. --- 都拿到内存中进行笛卡尔集肯定不行,内存没有那么大. 最简单的办法是对两个表建索引,但 ...
- Android事件监听(二)——点击鼠标事件
Button.ImageButton事件监听(setOnClickListener) 方法一:通过匿名内部类实现 代码如下: package com.note.demo2; import androi ...
- python2.7.5升级到2.7.14或者直接升级到3.6.4
python2.7.5升级到2.7.14 1.安装升级GCC yum install -y gcc* openssl openssl-devel ncurses-devel.x86_64 bzip2 ...
- 看电视剧<潜伏>有感
前几天看了老电视剧-潜伏,有一些感慨. 一,立场和真相都不重要,形式才是最重要的. 二.历史在不断的轮回中. 好汉历经千辛万苦杀掉了为害一方的恶霸,好汉的威望达到了顶峰,自然的成了村庄的守护者和掌控者 ...
- 如何利用`keep-alive`按需缓存页面数据
随着项目不断变大,页面变多,搜索条件也随之也越来越多,而每次跳转页面再返回时,之前的筛选的条件都会别清空.之前在elment-ui table组件 -- 远程筛选排序提到过缓存,但是有所取巧,这次重新 ...
- 06.AutoMapper 之内联映射(Inline Mapping)
https://www.jianshu.com/p/623655d7cb34 内联映射(Inline Mapping) AutoMapper在 6.2 以上版本将动态创建类型映射. 当第一次调用Map ...
- Jade学习(一)之特性、安装
前言 流行的模板 PHP:Smarty SimpleTemplate Xtemplate Savant Java:Velocity FreeMarker Jbyte C#:Dotiquid Sharp ...