Qt之QCustomPlot(图形库)

简述

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

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

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

  • 简述
  • 下载
  • 配置
    • 文档
    • 集成到QtCreatorAssistant
  • 使用
    • 效果
    • 源码
  • 截图

下载

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到+10
    for (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。

时间: 2024-08-02 02:58:24

Qt之QCustomPlot(图形库)的相关文章

QT使用qcustomplot 绘制柱状图

今天因为需要在QT底下绘制一个柱状图,由于不想自己麻烦重载一个QWidget所以就在网上搜索到了QCustomPlot,按照这个项目主页的图像显示它是可以满足我的要求. 首先来看一下效果图(绘制风格,画刷,颜色都使用的默认的) 先将下载来的QCustomPlot.cpp QCustomPlot.h拷贝到你的工程里 首先在QtCreator中拖出一个QWidget,然后提升为QCustomPlot类. 假设该成员变量为widget. 柱状图我们需要两个数据,一个是每个柱的相应标签(QString)

Qt之QCustomPlot绘图(一)配置和第一个例子

最近一个用Qt开发的项目需要绘制坐标曲线,我在老师的指点下使用了QCustomPlot这个插件,使用方法简单,功能还算不错. 可是在网上找了很多资料和博文都只是将官方提供的例子演示一遍,没有系统全面的学习资料,所以我决定把自己在探索过程中获得的一些开发实例和经验分享出来,与大家共同学习交流,请各位朋友多多指教. 一.QCustomPlot的安装 官方下载地址:http://www.qcustomplot.com/index.php/download 推荐下载第一个链接,里面有很多官方给的例子可以

Qt使用QCustomPlot开发

一.入门 1.下载源文件http://www.qcustomplot.com/: 2.把.cpp和.h放在工程目录下,并将cpp和h加入工程: 3.在.pro中:QT += printsupport: 4.在ui中添加一个Widget,右键提升为,输入:QCustomPlot,改变对象名称为customPlot: 5.加入代码: void MainWindow::initUi() { QVector<double> x(101), y(101); // initialize with entr

QT之QCustomPlot(一)

QDetectPlot::QDetectPlot(QWidget *parent) : QCustomPlot(parent) { QVector<double> x(101), y(101); // initialize with entries 0..100 for (int i=0; i<101; ++i) { x[i] = i/50.0 - 1; // x goes from -1 to 1 y[i] = x[i]*x[i]; // let's plot a quadratic

QT5.3+VS2013+QCustomPlot+QwtPlot使用环境配置

VS安装QT后运行环境所需配置 安装好QT和QT在VS下的插件之后: 1.打开VS,找到QT5→QT Option,如下: 2.配置电脑环境变量,在系统变量→Path下增加QT的动态库所在文件夹,也就是bin文件夹路径: QT使用QCustomplot库 官网下载:http://www.qcustomplot.com/ 直接下载QCustomplot,然后把.h文件和.cpp文件添加到工程即可. QT使用QwtPlot库 官网下载:http://qwt.sourceforge.net/ 打开VS

OSChina 技术周刊第九期 —— 每周技术精选,值得一看!

每周技术抢先看,总有你想要的! 移动开发 [翻译]介绍 Visual Studio 的 Android 模拟器 [博客]手机腾讯网mt框架之mtwebapp示例解析. [博客]<Android深入透析>之常用设计模式经验谈 前端开发 [翻译]ASP.NET 开发人员不必担心 Node 的五大理由 [博客]QT使用qcustomplot 绘制柱状图 [资讯]11 月份 30 个最新的免费 UI 工具包 [资讯]为 Web 设计师准备的 20 个免费扁平的图标 [软件]25 个响应式的 jQuer

QT绘图技术(二)QCustomPlot - 超强超小巧的qt绘图控件

QCustomPlot - 超强超小巧的qt绘图控件 2016-10-22 16:03:25|  分类: QT| 官方网站:http://www.qcustomplot.com/ 1.0下载地址:http://download.csdn.net/detail/czyt1988/5986701 下载LOFTER我的照片书  | QCustomPlot 超强超小巧的qt绘图控件,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp即可使用,远比qwt方便,若只

Qt绘图插件QCustomPlot下载 安装 配置 使用

一.配置QCustomPlot 官方下载地址:http://www.qcustomplot.com/index.php/download 下载之后将文件解压(不要有中文路径) 打开Qt,新建一个窗体工程 将解压得到的文件夹里面的头文件qcustomplot.h和源文件qcustomplot.cpp复制到工程文件夹下 在Qt中,添加已有文件,将头文件qcustomplot.h和提升类名称输入"QCustomPlot",点击添加源文件qcustomplot.cpp都添加到工程 在工程的pr

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

1.概述 QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用,远比qwt方便和漂亮,可以自己使用两个源文件也可以自己编译成库文件,非常方便. 官方网站:http://www.qcustomplot.com/ 1.0下载地址:http://download.csdn.net/detail/czyt1988/5986701 下面展示一下它的超强功能: 1.安装 使用QCustomPlot非常简