QCustomPlot的使用教程(一)
文章目录
- 1、QCustomPlot的简介
- 2、QCustomPlot库的下载和安装
- 3、QCustomPlot中的常用类介绍
- 4、QCustomPlot的使用
- 4.1、解压QCustomPlot的压缩包
- 4.2、模块化管理图表库文件
- 4.3、控件提升
- 5、完整代码
- 6、效果图
1、QCustomPlot的简介
QCustomPlot是Qt的一个小型第三方图表库,支持静态/动态曲线、柱状图、蜡烛图、频谱图等。使用方便,仅需在项目中加入头文件qcustomplot.h和qcustomplot.cpp源文件即可,或者把它当做一个库来添加到项目当中,该绘图库专注于制作美观、出版物质量高的2D绘图、图形和图表,并为实时可视化应用程序提供高性能。
2、QCustomPlot库的下载和安装
QCustomPlot的官网链接:https://www.qcustomplot.com/index.php/introduction
QCustomPlot的下载链接:https://www.qcustomplot.com/index.php/download
如下是QCustomPlot的安装图:
如上图,点击QCustomPlot.tar.gz即可下载QCustomPlot。
3、QCustomPlot中的常用类介绍
- QCustomPlot:图表类,用于图表显示以及交互。
- QCPLayer:图层类,用于管理图层元素,所有可显示的对象都继承自图层元素。
- QCPAbstractPlottable:绘图元素类,包含折线图(QCPGraph)、曲线图(QCPCurve)、柱状图(QCPBars)、盒子图(QCPStaiBox)、QCPColorMap(色谱图)、金融图(QCPFinancial)。
- QCPAxisRect:坐标轴矩形,一个坐标轴矩形包含上下左右四个坐标,但可以添加多个坐标。
4、QCustomPlot的使用
4.1、解压QCustomPlot的压缩包
首先是解压QCustomPlot的压缩包文件:
4.2、模块化管理图表库文件
首先是在qt中创建一个项目文件,然后在项目工程中创建一个名为QCustomPlot的文件夹,将qcustomplot.h和qcustomplot.cpp文件复制到该文件夹中,然后创建一个文本文件,然后是修改文本文件的后缀名为pri。
然后通过qmake语法将pri文件加载到主项目工程中:
如上是通过include将QCustomPlot这个图表类模块导入到主项目工程中,实现了模块化管理项目,其次我们要导入Qt中的打印模块(printsupport)。
QCustomPlot.pri中的qmake语句如下:
4.3、控件提升
在QtDesinger中设计ui界面,拖拽一个widget控件放入主窗体中,然后对主窗体使用网格布局:
右击widget控件,选择提升为,就会弹出一个提升控件的对话框,提升的类名称选择QCustomPlot,头文件为QCustomPlot/qcustomplot.h:
当右侧widget控件的类名显示为QCustomPlot时,则代表成功:
5、完整代码
mainwindow.h如下:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include"QCustomplot/qcustomplot.h"QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();void plotDemo1();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);this->setWindowTitle("QCustomPlot Demo");plotDemo1();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::plotDemo1()
{this->ui->widget->addGraph(); //添加数据曲线//为坐标轴添加标签this->ui->widget->xAxis->setLabel("X");this->ui->widget->yAxis->setLabel("Y");//设置坐标轴范围this->ui->widget->xAxis->setRange(-1,1);this->ui->widget->yAxis->setRange(0,1);//模拟数据点QVector<double> x(101),y(101);for(int i=0;i<101;i++){x[i]=i/50.0-1;y[i]=x[i]*x[i];}//为数据曲线赋值this->ui->widget->graph(0)->setData(x,y);//设置图例名称this->ui->widget->graph(0)->setName("First QCP Demo");//显示图例this->ui->widget->legend->setVisible(true);//刷新图表this->ui->widget->replot();
}
6、效果图
QCustomPlot的使用教程(一)相关推荐
- QCustomPlot的使用教程(二)
文章目录 1.绘制多条曲线 2.绘制柱状图 1.绘制多条曲线 上一节中简单介绍了如何使用QCustomPlot绘制一条简单的曲线,下面将介绍如何通过QCustomPlot绘制多条曲线. 如下是参考官网 ...
- QT5系列教程二---基于qcustomplot的QT5 GUI串口收发绘图软件实现
QT5系列教程二---基于qcustomplot的QT5 GUI串口收发绘图软件实现 结构 UI部分 代码部分 step1:实现串口数据接受 串口接受数据格式 在`.pro`文件中添加`serialp ...
- qcustomplot使用教程--基本绘图
0.说明 本节翻译总结自:Qt Plotting Widget QCustomPlot - Basic Plotting 本节内容是使用QCustomPlot进行基本绘图. 本节教程都使用custom ...
- QCustomPlot基础教程(十)——QCustomPlot中图例的相关设置
目录 1.前言 2.显示图例 3.设置图例位置 4.设置图例背景 5.设置图例名称 6.设置边框隐藏 7.其他设置 8.拓展1--将图例统一放在下方 9.拓展2--设置图例与曲线同步选中 1.前言 基 ...
- Qt使用QCustomPlot画坐标图教程
调用QCustomPlot库的方式有两种: 1.直接放入源码cpp和.h,然后直接调用 2.加载QCustomPlot的库,so或者dll project文件中加入printsupport QT += ...
- QCustomPlot基础教程(八)——QCustomPlot将绘制的图形保存导出
目录 一.函数介绍 二.代码示例 一.函数介绍 QCustomPlot提供了四种常用的save接口,其格式如下: saveBmp(const QString &fileName, int wi ...
- qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程
1.概述 QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用,远比qwt方便和漂亮,可以自己 ...
- (一)QCustomPlot常见属性设置、多曲线绘制、动态曲线绘制、生成游标、矩形放大等功能实现
系列文章目录 提示:这里是该系列文章的所有文章的目录 第一章: (一)QCustomPlot常见属性设置.多曲线绘制.动态曲线绘制.生成游标.矩形放大等功能实现 第二章: (二)QCustomPlot ...
- Qt之QCustomPlot
在学完各种dll的调用方式和QAbstractItemModel之后,终于到了这一步,之前用过CustomPlot来实现简单图的绘制,但是这次我需要从头开始,理解内涵 文章目录 1 Main Page ...
最新文章
- 让IE8和IE9支持 placeholder
- 在夕阳下第一次写文章的菜鸟
- 上顿号符号_上顿号符号_标点符号(1):谈谈顿号的用法
- Java 文件操作 File 及 RandomAccessFile
- 信息学奥赛一本通 1203:扩号匹配问题 | OpenJudge 2.2 2705:扩号匹配问题
- C Primer Plus 第9章 函数 9.4 多源代码文件程序的编译
- linux 开源谷歌浏览器_开发人员浏览器,Google开源版本等
- JavaWeb书城项目(尚硅谷视频整理自用)
- 申请被拒模板 (三)
- 扫一扫就可一键叫车 杭州暖心车站让老人去往生活里的远处
- 水溶性CdSe/ZnS量子点(表面由亲水配体包裹的核/壳型荧光纳米材料)
- 在html5中,用于获得用户当前位置的方法
- Mybatis+spring知识点
- python能画k线图吗_python画k线图(一天的k线图怎么画)
- TCP/IP详解卷1:第十四章 DNS 域名系统
- 学习 Go 语言 0x04:《Go 语言之旅》中切片的练习题代码
- java中scanner是什么意思_java中scanner是什么
- ORA-01031: insufficient privileges
- 计算机中腾讯QQ程序的安装路径,更改应用商店内应用的安装位置
- 合并多个PPT文件到一个文件中的方法
热门文章
- 【百度地图API】建立全国银行位置查询系统(五)——如何更改百度地图的信息窗口内容?...
- 打印一个字符串的全部子序列,包括空字符串
- 哈希碰撞攻击与防范机制
- java 开源 portal_四种开源门户portal软件比较
- 教你在Win10系统中迅速打开便签应用的方法
- MAT 分析OOM out of memory模拟OOM Killer
- 未来技术方向——“乐高式”可组装式开发能力
- SAP工具箱 自动生成发出接口程序(三 配置表)
- ECharts绘制折线图
- 【论文阅读】CVPR2023 ||CFA: Class-wise Calibrated Fair Adversarial Training