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第三方控件开源库及特点和用途简要描述如下:
- QCustomPlot是一个绘制图表、曲线、统计图等的库,具有灵活的定制化和丰富的功能;
- QXlsx是一个用于读写Microsoft Excel文件的库,使Qt应用程序能够处理Excel数据;
- QHotkey是一个简单易用的库,用于在Qt应用程序中注册全局快捷键;
- QtSerialPort是Qt官方提供的库,用于串口通信,支持跨平台使用;
- QsLog是一个轻量级的日志库,用于在Qt应用程序中记录和输出日志信息;
- QJson是用于JSON数据解析和生成的库,方便处理JSON格式的数据;
- QwtPlot3D是绘制三维图形的库,支持曲面图、线框图、散点图等。
二、QCustomPlot
先提供QCustomPlot库的官方网址:Qt 绘图小部件 QCustomPlot - 简介
1.qcustomplot介绍
根据该库的官方介绍,QCustomPlot是一个用于绘图和数据可视化的Qt C++小部件,该绘图库专注于制作美观、出版质量的2D绘图、图形和图表,支持多种图表类型,如折线图、散点图、柱状图等,具有灵活的配置选项和高效的性能,并为实时可视化应用程序提供高性能。
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压缩包仅包含源码。
注意选择最好选择QCustomPlot.tar.gz这个文件下载,里面包含源码、帮助文档和示例工程,既有我们需要的qcustomplot.h和
qcustomplot.cpp
这两个源文件,又可以查看官方推荐的示例工程,方便我们更好的了解QCustomPlot和使用它。
3.qcustomplot移植
上面下载完后,如下图所示。里面的两个文件夹即为官方示例,有空时大家可以参考,而qcustomplot.h和qcustomplot.cpp文件就是我们所需要要的,将这两个文件添加到你的Qt项目中。
首先,将qcustomplot.h和qcustomplot.cpp文件复制到项目文件夹中。
然后,在Qt Creator中,右键点击项目名,选择“添加现有文件”,选中这两个文件。
4.修改项目文件.pro
如果使用的是Qt5.0及以上版本,需要在项目.pro文件中添加printsupport
。代码示例:
5.提升QWidget类
在Qt Designer中,放置一个常规的QWidget,右键点击该QWidget,选择“提升为...”,在“提升的类名”中输入QCustomPlot,然后点击“提升”。这样,QWidget将被转换为QCustomPlot类。
至此,已经将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文库。