当前位置: 首页 > 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.lryc.cn/news/501257.html

相关文章:

  • JAVA-类与继承
  • SSH连接报错,Corrupted MAC on input 解决方法
  • 【C++】8___继承
  • C# 中的异常处理:构建健壮和可靠的程序
  • 基于智能合约的医院凭证共享中心路径探析
  • vba学习系列(9)--按需求计数单元格数量
  • scale index的计算
  • 鸿蒙实现Web组件开发
  • Linux——linux系统移植
  • 工业摄像头应对复杂环境的策略与解决方案
  • 重生之我在异世界学编程之C语言:深入动态内存管理篇
  • 【经典论文阅读】Latent Diffusion Models(LDM)
  • 智能指针中的weak_ptr(弱引用智能指针)
  • 【电子通识】机电继电器和固态继电器的区别
  • 工业异常检测-CVPR2024-新的3D异常数据合成办法和自监督网络IMRNet
  • 如何创建对话窗口
  • 新手上路,学Go还是Python
  • <!DOCTYPE html>的作用是什么
  • EasyExcel改名为FastExce做了那些改变呢
  • 狗狗的生育周期:关注与呵护
  • ABAP DIALOG屏幕编程2
  • 获取缓存大小与清除 Web 缓存 - 鸿蒙 HarmonyOS Next
  • 在Unreal Engine中,UHT与反射机制
  • SQL项目实战与综合应用——项目设计与需求分析
  • 分布式中的CAP定理和BASE理论与强弱一致性
  • C/C++常见符号与运算符
  • 了解 k8s 网络基础知识
  • 用户信息界面按钮禁用+发送消息功能
  • 接近开关传感器-PCB线图电感式传感器【衰减系数1】
  • C/C++流星雨