Qt6 + QCustomPlot 实时曲线 Demo ,适合串口与上位机项目

最近整理了一个基于 Qt6 + QCustomPlot 的实时曲线显示 Demo,主要用于演示上位机软件中常见的实时数据展示、曲线交互和数据接收功能。

项目采用 Qt6 + CMake + VS2022 开发,代码结构清晰,适合作为学习参考或直接进行二次开发。

已实现功能

目前支持:

  • 鼠标拖拽平移曲线
  • 鼠标滚轮缩放视图
  • X/Y、仅X、仅Y三种轴向模式
  • 曲线、坐标轴、图例、数据点选择
  • 拖拽采样点实时修改数据
  • 模拟实时接收数据
  • 自定义接收间隔
  • 折线、平滑曲线、柔和平滑三种绘制方式
  • PNG图片导出

模拟实时数据接收

Demo内置数据模拟功能,会持续产生新的随机采样值并追加到曲线末尾,用于模拟真实设备的数据流。

例如:

  • 串口设备
  • TCP通信
  • 数据采集卡
  • PLC设备
  • 传感器数据

后续如果需要接入真实设备,只需将随机数据部分替换为实际接收到的数据即可。


平滑曲线效果

很多实时曲线直接使用折线连接,转折位置会比较生硬。

因此Demo增加了平滑曲线绘制功能:

  • 红色点表示真实采样数据
  • 蓝色线表示插值后的平滑曲线

这样既保留原始数据,又能获得更好的显示效果。


适合哪些项目?

这个Demo比较适合:

  • Qt学习
  • QCustomPlot研究
  • 串口工具开发
  • 上位机软件开发
  • 数据采集系统
  • 设备监控软件
  • 工业控制项目

如果你正在做实时曲线显示相关功能,可以直接在此基础上扩展串口、TCP、数据库等模块。


源码获取

需要源码的朋友,

评论区回复:

源码

后续统一发送获取方式。

也欢迎交流:


相关推荐
杜子不疼.14 小时前
【Qt初识】信号槽(三):机制意义、断开连接与 Lambda 表达式
开发语言·数据库·qt
杜子不疼.17 小时前
【Qt初识】信号槽(二):自定义信号函数与槽函数
开发语言·qt
秋田君17 小时前
Qt_QVariant
开发语言·qt
杜子不疼.18 小时前
【Qt初识】工程起步:项目创建、代码解读与对象树
数据库·c++·qt
安东尼肉店21 小时前
QT 自定义随机验证码校验
开发语言·qt
小徐不徐说2 天前
Qt 线程迁移机制完整实战指南(moveToThread)
开发语言·c++·qt·程序设计
Traveler飞2 天前
Ubuntu20.04 VMware 黑屏无法进入桌面,Ctrl+Alt+F2 可以进入终端,最终发现是磁盘空间满了
qt·ubuntu
m0_587098993 天前
Qt,二进制文件读写建议
开发语言·qt
秋田君3 天前
QT_QT信号与槽机制
开发语言·数据库·qt
辞旧 lekkk3 天前
【Qt】 系统相关:事件与定时器
开发语言·qt·学习·萌新