简述

QCustomPlot是一个基于Qt C++的图形库,用于绘制和数据可视化 - 制作漂亮的2D图 - 曲线图、趋势图、坐标图、柱状图等,并为实时可视化应用程序提供高性能服务。它没有进一步的依赖关系,并有着良好的文档记录。

QCustomPlot可以导出为各种格式,比如:PDF文件和位图(如:PNG、JPG、BMP)。

可在自己的项目中直接使用两个源文件(qcustomplot.h与qcustomplot.cpp),或预先编译成库。

| 版权声明:一去、二三里,未经博主允许不得转载。

下载

QCustomPlot首页:http://www.qcustomplot.com/

进入QCustomPlot下载页,下载最新的完整包(包含:源码、文档、示例)!

将下载好的安装包进行解压缩,里面包含文档、示例、更改日志、GPL授权、以及最重要的两个文件qcustomplot.h与qcustomplot.cpp。

配置

文档

完整的API文档在complete API documentation上面,或者作为完整包的一部分,在解压缩后的目录中可以找到。里面包含一个HTML文档的层次结构和qch帮助文件用于QtCreator/Assistant集成。如果使用QtCreator或Assistant,应考虑使用qch文件,这将极大地提高工作效率!

集成到QtCreator/Assistant

集成qch文件相当简单:

  1. 复制qcustomplot.qch文件到你需要存储的地方(例如:本地QtCreator配置目录)。

  2. 在QtCreator中,选择:工具 -> 选项 -> 帮助 -> 文档,你会看到一个加载文档模块的列表,以及添加/删除模块的按钮。点击”添加…”按钮,选择qcustomplot.qch文件。

这样,我们就添加完成了。可以通过:帮助 -> 索引,来搜索QCustomPlot相关的类或函数。

当你把光标放在任何QCustomPlot相关的类或函数上时,按下F1键,就会有相应的文档项弹出,就像Qt组件一样。

使用

在examples中我们会看到一些自带的示例,可以运行看一下效果。

如果在自己的项目中使用,需要进行以下配置:

首先,在pro中需要添加(由于QCustomPlot中存在导出功能,使用了printsupport模块):

QT += printsupport

然后,将qcustomplot.h与qcustomplot.cpp拷贝到工程目录下,右键 -> 添加现有文件…,将这两个文件添加至工程。

下面,我们来实现一个曲线图,为了增强效果,我们设置一些样式。

效果

源码

#include "qcustomplot.h"MainWindow::MainWindow(QWidget *parent): CustomWindow(parent)
{...QCustomPlot *pCustomPlot = new QCustomPlot(this);pCustomPlot->resize(300, 300);// 可变数组存放绘图的坐标的数据,分别存放x和y坐标的数据,101为数据长度QVector<double> x(101), y(101);// 添加数据,这里演示y = x^3,为了正负对称,x从-10到+10for (int i = 0; i < 101; ++i){x[i] = i/5 - 10;y[i] = qPow(x[i], 3);  // x的y次方;}// 向绘图区域QCustomPlot添加一条曲线QCPGraph *pGraph = pCustomPlot->addGraph();// 添加数据pCustomPlot->graph(0)->setData(x, y);// 设置坐标轴名称pCustomPlot->xAxis->setLabel("x");pCustomPlot->yAxis->setLabel("y");// 设置背景色pCustomPlot->setBackground(QColor(50, 50, 50));pGraph->setPen(QPen(QColor(32, 178, 170)));// 设置x/y轴文本色、轴线色、字体等pCustomPlot->xAxis->setTickLabelColor(Qt::white);pCustomPlot->xAxis->setLabelColor(QColor(0, 160, 230));pCustomPlot->xAxis->setBasePen(QPen(QColor(32, 178, 170)));pCustomPlot->xAxis->setTickPen(QPen(QColor(128, 0, 255)));pCustomPlot->xAxis->setSubTickPen(QColor(255, 165, 0));QFont xFont = pCustomPlot->xAxis->labelFont();xFont.setPixelSize(20);pCustomPlot->xAxis->setLabelFont(xFont);pCustomPlot->yAxis->setTickLabelColor(Qt::white);pCustomPlot->yAxis->setLabelColor(QColor(0, 160, 230));pCustomPlot->yAxis->setBasePen(QPen(QColor(32, 178, 170)));pCustomPlot->yAxis->setTickPen(QPen(QColor(128, 0, 255)));pCustomPlot->yAxis->setSubTickPen(QColor(255, 165, 0));QFont yFont = pCustomPlot->yAxis->labelFont();yFont.setPixelSize(20);pCustomPlot->yAxis->setLabelFont(yFont);// 设置坐标轴显示范围,否则只能看到默认范围pCustomPlot->xAxis->setRange(-11, 11);pCustomPlot->yAxis->setRange(-1100, 1100);...
}

如果需要导出,我们可以调用对应的save…接口。

例如,导出一张为PNG格式,宽度、宽度分别为400px、300px的图片:

pCustomPlot->savePng("customPlot.png", 400, 300);

截图

下面的截图显示了QCustomPlot实现的一些效果,仅仅通过很少的代码而已。要查看代码,可以进入:QCustomPlot首页,然后点击相应的图片即可。所有可用代码也可以在完整包中找到,导航到:examples/plots/plot-examples.pro。





Qt 之 QCustomPlot(图形库)相关推荐

  1. QT之QCustomPlot绘图实现8通道串口虚拟示波器

    QT之QCustomPlot绘图实现8通道串口虚拟示波器----串口插拔自动检测 QT之QCustomPlot绘图实现8通道串口虚拟示波器----QCustomPlot实时绘图 QT之QCustomP ...

  2. Qt使用QCustomPlot画坐标图教程

    调用QCustomPlot库的方式有两种: 1.直接放入源码cpp和.h,然后直接调用 2.加载QCustomPlot的库,so或者dll project文件中加入printsupport QT += ...

  3. Qt之QCustomPlot

    在学完各种dll的调用方式和QAbstractItemModel之后,终于到了这一步,之前用过CustomPlot来实现简单图的绘制,但是这次我需要从头开始,理解内涵 文章目录 1 Main Page ...

  4. Qt使用QCustomPlot开发

    一.入门 1.下载源文件http://www.qcustomplot.com/: 2.把.cpp和.h放在工程目录下,并将cpp和h加入工程: 3.在.pro中:QT += printsupport: ...

  5. qt之QCustomPlot与qchart初级应用-----绘制动态曲线

    一.前言 早就想发这个帖子了,但由于单位项目比较紧,一直没腾出时间去学习和发博客,今天趁着再次接触了一下QCustomPlot,把上次要 发的qchart和QCustomPlot做的一些初级练习发出来 ...

  6. QT中QCustomPlot绘制曲线图

    一.QCustomPlot介绍 QCustomPlot 是一个基于Qt的画图和数据可视化C++控件.QCustomPlot 致力于提供美观的界面,高质量的2D画图.图画和图表,同时为实时数据可视化应用 ...

  7. qt之QCustomPlot动态时间轴更新曲线

    一.前言 使用qcustomplot进阶用法, 横坐标采用时间显示,纵坐标为数值当前值,主要实现的是横坐标点和时间对应,但不全部显示时间,只显示设定数量时间点,例如:曲线x长度10000,设置时间点7 ...

  8. QT 中 QCustomplot的用法

    主要介绍其用法 https://wendy.blog.csdn.net/category_11305276_2.html 官网:Qt Plotting Widget QCustomPlot - Dow ...

  9. QT利用QCustomplot绘制折线图海底声速梯度图,解决一条曲线中一个X值对应两个Y值

    一.问题描述 我想要绘制如下的图 最近遇到一个问题就是绘制海底声速梯度图,当我绘制深海情况下的声速梯度,有一个折回来的曲线,如果我仅仅用普通的曲线绘制会出现来回折线的情况如下图所示: 里面细节如上图所 ...

最新文章

  1. JVM基础系列第14讲:JVM参数之GC日志配置
  2. 定义任务打印gradle下载的jar包位置
  3. 容器间通信的三种方式 - 每天5分钟玩转 Docker 容器技术(35)
  4. 计算机兴趣小组意义,信息技术兴趣小组开展之我见
  5. CMU Database Systems - Sorting,Aggregation,Join
  6. mpvue 微信小程序 显示 转发按钮
  7. 自己编写一个前端精确打印控件
  8. C#中WebBrowser控件的使用
  9. SOA架构中企业数据总线(ESB)和微服务架构中注册服务管理(dubbo)的区别
  10. macOS如何格式化移动硬盘和U盘
  11. 联想服务器装系统鼠标没反应,联想Thinkpad重装系统后键盘鼠标失灵的解决方法...
  12. 借你的名字,诵念尘世的幸福
  13. C++知识之如何利用双缓冲避免在HDC上画图时图像闪烁
  14. R实现K-means
  15. 【精选】基于EasyX的贪吃蛇小游戏
  16. 联想IdeaPad Z460在Win10环境下BIOS刷白名单
  17. 778cn显示计算机故障,小松挖掘机故障码CA778
  18. mac php fpm 启动,mac 启动php-fpm
  19. 编译Linux 内核
  20. Android系统硬件访问服务框架分析

热门文章

  1. Kubernetes暴漏服务类型之Nginx Ingress
  2. 【springcloud】Eureka 服务提供者 增加服务暴漏
  3. react 脚手架创建后暴漏配置文件 运行yarn eject 报错 (已解决)
  4. logo免费在线设计,给自己的logo寻找灵感
  5. (第两百篇BLOG记录)写于博士三年级结束-20210529
  6. ibm jazz_Jazz源代码管理管理指南
  7. vector_back
  8. 黄鱼车今后会少 下沙公交小巴向出租车转型
  9. 一个爬取图片的app
  10. html输入公式得到混合运算结果,excel表格如何用公式计算加减乘除混合运算-excel乘法如何计算,excel函数怎么计算乘法...