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

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

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

已实现功能

目前支持:

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

模拟实时数据接收

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

例如:

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

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


平滑曲线效果

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

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

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

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


适合哪些项目?

这个Demo比较适合:

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

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


源码获取

需要源码的朋友,

评论区回复:

源码

后续统一发送获取方式。

也欢迎交流:


相关推荐
ShineWinsu1 天前
对于Qt:QTabWidget常见属性的解析
开发语言·数据库·c++·qt·浏览器·qtabwidget·标签页
慧都产品智能化4 天前
Qt 表格升级攻略:复用已有编辑器,减少重复开发
c++·qt·编辑器·qt6.3
ShineWinsu4 天前
对于Qt:QTableWidget常见属性以及QTableWidgetItem类的解析
开发语言·c++·qt·gui·客户端·表格·qtablewidget
ShineWinsu4 天前
对于Qt:QListWidget常见属性以及QListWidgetItem类的解析
开发语言·c++·qt·客户端·列表·qlistwidget·qlistwidgetitem
ShineWinsu5 天前
对于Qt:QDial常见属性以及信号的解析
开发语言·c++·qt·gui·客户端·旋钮·qdial
宛 禾5 天前
Qt 事件系统完全指南:从事件循环到实战避坑
qt
敲上瘾5 天前
Qt Widgets入门:项目模板解析与Hello World
开发语言·数据库·c++·qt·ui·qt6.3
MOONICK6 天前
QT元数据
开发语言·qt
橙橙笔记7 天前
QT的学习第四部分
linux·qt·学习·音视频
sycmancia7 天前
Qml——信号连接、自定义信号
qt