当前位置: 首页 > news >正文

Qt之第三方库QCustomPlot使用(二)

Qt开发 系列文章 - qcustomplot(二)


目录

前言

一、Qt开源库

二、QCustomPlot

1.qcustomplot介绍

2.qcustomplot下载

3.qcustomplot移植

4.修改项目文件.pro

5.提升QWidget类‌

三、技巧讲解

1.拖动缩放功能

2.等待更新

总结


前言

Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用程序功能的控件集合。这些控件库可以提供额外的用户界面元素、功能组件或者优化现有Qt控件的性能和外观。一些常用的Qt第三方控件库有QCustomPlot、QXlsx、QHotkey、QtSerialPort、QsLog等等很多,它们都是开源的、免费的,且基于Qt框架编写,今天本文主要讲解QCustomPlot第三方控件开源库。

Qt官方提供了一套绘图库QCharts,主要用于绘制商业、金融、医疗等领域的数据图表,优点是丰富的图表,较高的美观,支持跨平台,可绘制的图标种类比QCustomPlot多;但是在绘图点数过多,大概在两千个点以上就存在刷新卡顿的问题。

CustomPlot是一款非官方的轻量级绘图库,主要用于绘制科学、工程、统计等领域的数据图表,优点易于使用,较高的性能和灵活性,适合中小型数据可视化,其框架和缓存化的处理使其处理性能大幅度提升,支持十万以上的数据量。


一、Qt开源库

Qt开源库‌是指基于Qt框架的一系列开源库,这些库提供了丰富的功能,帮助开发者在Qt应用程序中实现各种功能需求。Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛用于开发GUI程序,也可用于开发非GUI程序,如控制台工具和服务器。

常用的Qt第三方控件开源库及特点和用途简要描述如下:

  1. QCustomPlot‌是一个绘制图表、曲线、统计图等的库,具有灵活的定制化和丰富的功能;
  2. QXlsx是一个用于读写Microsoft Excel文件的库,使Qt应用程序能够处理Excel数据;
  3. QHotkey是一个简单易用的库,用于在Qt应用程序中注册全局快捷键;
  4. QtSerialPort是Qt官方提供的库,用于串口通信,支持跨平台使用;
  5. QsLog是一个轻量级的日志库,用于在Qt应用程序中记录和输出日志信息;
  6. QJson‌是用于JSON数据解析和生成的库,方便处理JSON格式的数据;
  7. QwtPlot3D‌是绘制三维图形的库,支持曲面图、线框图、散点图等。

二、QCustomPlot

先提供QCustomPlot库的官方网址:Qt 绘图小部件 QCustomPlot - 简介

1.qcustomplot介绍

根据该库的官方介绍,QCustomPlot是一个用于绘图和数据可视化的Qt C++小部件,该绘图库专注于制作美观、出版质量的2D绘图、图形和图表,支持多种图表类型,如折线图、散点图、柱状图等,具有灵活的配置选项和高效的性能,并为实时可视化应用程序提供高性能。

b8b03fc7b5654eeead728c2a9aac9ef3.png

2.qcustomplot下载

在上面的官网选择下载界面,可以看到最新版本文件,界面上下载的压缩包包括:QCustomPlot.tar.gz、QCustomPlot-sharedlib.tar.gz、‌QCustomPlot-source.tar.gz这三个下载选项,其中‌QCustomPlot.tar.gz压缩包包含源码、帮助文档和示例工程‌,QCustomPlot-sharedlib.tar.gz压缩包包含编译动态库的.pro文件和使用动态库的.pro文件,QCustomPlot-source.tar.gz压缩包仅包含源码‌。

bd1bc41c0d7a4666a9fea50d25526cac.png

注意选择最好选择QCustomPlot.tar.gz这个文件下载,里面包含源码、帮助文档和示例工程,既有我们需要的qcustomplot.h和qcustomplot.cpp这两个源文件,又可以查看官方推荐的示例工程,方便我们更好的了解QCustomPlot和使用它。

3.qcustomplot移植

上面下载完后,如下图所示。里面的两个文件夹即为官方示例,有空时大家可以参考,而qcustomplot.h和qcustomplot.cpp文件就是我们所需要要的,将这两个文件添加到你的Qt项目中。

ac4738cfb5fb4cd6939fc917cb8726db.pngd598a4beceda4fc9ab6bb665f162f53e.png

首先,将qcustomplot.h和qcustomplot.cpp文件复制到项目文件夹中。

aa5e493ebefc4903b13bd742de1c962b.png

然后,在Qt Creator中,右键点击项目名,选择“添加现有文件”,选中这两个文件‌。

479abad86af14901a86e6f255db0ed13.png934c112b47a34c8d9a7845a088d3b3b2.png

4.修改项目文件.pro

如果使用的是Qt5.0及以上版本,需要在项目.pro文件中添加printsupport。代码示例:

197e8cd97a5e405b800f20bc30b81bd8.png

5.提升QWidget类

在Qt Designer中,放置一个常规的QWidget,右键点击该QWidget,选择“提升为...”,在“提升的类名”中输入QCustomPlot,然后点击“提升”。这样,QWidget将被转换为QCustomPlot‌类。

d50bd855be094f87bb2b81dca1461f07.pngf9d88db199484bb79b588c1f78423966.png

至此,已经将QCustomPlot在Qt中运用的开发环境已经搭建完毕,下面在讲解一些QCustomPlot的使用技巧,也可以参考下官方示例上的使用方式。

三、技巧讲解

1.拖动缩放功能

如果要设置QCustomPlot生成的曲线,可以使用鼠标移动拖动、滚轮缩放、点击选中等功能,只需要添加一段代码。

// 允许用户用鼠标拖动轴范围,以鼠标为中心滚轮缩放,点击选择图形:
customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);
// 设置鼠标滚轮的缩放倍率,如果不设置默认为0.85,大于1反方向缩放
customPlot->axisRect()->setRangeZoomFactor(0.5);
// 设置鼠标滚轮缩放的轴方向,仅设置垂直轴。垂直轴和水平轴全选使用:Qt::Vertical | Qt::Horizontal
customPlot->axisRect()->setRangeZoom(Qt::Vertical);

2.等待更新

holding...


总结

QCustomPlot库里面还有许多功能,更为详细可参考官方给出的示例工程,在上述讲解中,你下载的文件包中。

博文中相应的工程代码Qt-Case.zip 利用Qt开发软件进行编的例程,为博文提供案例-CSDN文库。


http://www.mrgr.cn/news/79539.html

相关文章:

  • 轻量级的 HTML 模板引擎
  • mac删除程序坞(Dock)中“无法打开的程序“
  • (css)element中el-select下拉框整体样式修改
  • 分布式事务-nacos/seata在windows环境下部署及开发
  • 跨域 Cookie 共享
  • 【MySQL 进阶之路】拓展 - Java 常见锁机制
  • 数字图像处理(15):图像平移
  • ElasticSearch常见的索引_集群的备份与恢复方案
  • 5G模组AT命令脚本-关闭模组的IP过滤功能
  • vue深入理解(1)
  • MySQL数据库(3)-SQL基础语言学习
  • 《MySQL 表结构设计基础》
  • IdentityServer4框架、ASP.NET core Identity
  • 【Redis】not support: redis
  • 《MySQL 入门:数据库世界的第一扇门》
  • HTML旋转爱心(完整代码)
  • Qt学习笔记第51到60讲
  • 39 vector深入理解 · 迭代器失效深度浅拷贝
  • 【人工智能基础06】人工神经网络基础(二):1. 权值初始化(权值优化、避免梯度爆炸、消失)、2. 权值衰减(防止过拟合)与 3. 权值共享(卷积核)
  • spring boot验证码
  • Kafka服务器的简单部署以及消息的生产、消费、监控
  • 【CKS最新模拟真题】获取多个集群的上下文名称并保存到指定文件中
  • Unity教程(十九)战斗系统 受击反馈
  • 避大坑!Vue3中reactive丢失响应式的问题
  • 链表OJ题型讲解与总结
  • 力扣每日一题 - 999. 可以被一步捕获的棋子数