案例分享:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出excel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)

35 篇文章 23 订阅
4 篇文章 3 订阅

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110941614
长期持续带来更多项目与技术分享,咨询请加QQ:21497936、微信:yangsir198808
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

合作案例专栏:案例分享(体验Demo可下载,只定制)


需求

  1.通道使能、选择、更改通道名称、设置显示颜色
  2.采样率可设置(Sa/s/chj)
  3.单位换算,按照给定的进行换算
  4.对通道可进行设置补偿值
  5.通道取消可动态显示和隐藏,并可动态调整显示颜色
  6.一定范围的X轴、全范围Y轴、支持自动X轴、自动Y轴
  7.清除图表(实际数据不清除),方便对比跟踪
  8.支持将已有的采集数据按照指定规则导出到excel表
  9.将当前二维表导出为图表保存
  10.定时采集,选择实验采集多久,到时间后停止采集
  11.通信设置,使用串口,可设置串口号和波特率
  12.对设置设置界面和主界面的所有相关配置参数进行保存,并在下次启动时恢复最后一次启动的配置数据
  13.支持日志系统,对相关操作和数据进行日志输出
  14.双击空白区域,可全屏(分辨率固定为客户定制要求,所以限制了,屏幕小的可尝试双击全屏看)

性能

  支持长时间采集,几万点同时显示,不卡顿

补充说明

  支持模拟方式,带有模拟下位机数据输入上位机,点击“开始采集”即可

模拟方式说明

  注意:同时支持实际下位机协议数据和模拟数据两种方式,模拟数据主要是方便客户与开发者调试、测试和修复
  1.使用模拟数据时,请先随意打开串口,点击“启动”后即可模拟数据
  2.使用模拟数据时,导出excel,为“hello world”内容”


相关博客

  《案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出exce、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)
  《案例分享:Qt多段Y轴折线图框架(双Y轴段折线、支持拽拖、浮动游标显示X值各段Y值、支持大量实时显示下位机数据)
  《案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)
  《案例分享:Qt多通道数据采集系统(通道配置、电压转换、采样频率、通道补偿值、定时采集、导出excel和图表、自动XY轴、隐藏XY轴、实时隐藏显示通道)
  《Qt开发笔记之QCustomPlot:QCustomPlot介绍、编译与使用
  《Qt开发笔记之Qwt(一):Qwt介绍、编译与Demo


Demo

  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述
  在这里插入图片描述

  
在这里插入图片描述
  在这里插入图片描述


体验下载地址

  特别注意:发布的用模拟数据方式,模拟数据方式请先随意打开串口,点击“启动”后即可模拟数据
  CSDN:https://download.csdn.net/download/qq21497936/15113607
  QQ群:1047134658(点击“文件”搜索“debugTool”,群内与博文同步更新)


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110941614

  • 9
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
Qt导出Excel通常使用QAxObject库,同时使用多线程可以提高程序的响应速度和效率。 以下是一个简单的示例代码,以导出一个包含50000个单元格的Excel表格为例: ```cpp #include <QApplication> #include <QAxObject> #include <QThread> class ExcelExporter : public QObject { Q_OBJECT public: ExcelExporter(QObject *parent = nullptr) : QObject(parent) {} public slots: void exportExcel() { QAxObject *excel = new QAxObject("Excel.Application", this); excel->setProperty("Visible", false); QAxObject *workbooks = excel->querySubObject("Workbooks"); QAxObject *workbook = workbooks->querySubObject("Add()"); QAxObject *worksheets = workbook->querySubObject("Worksheets"); QAxObject *worksheet = worksheets->querySubObject("Item(int)", 1); for (int i = 1; i <= 50000; i++) { QString cell = QString("A%1").arg(i); QAxObject *range = worksheet->querySubObject("Range(QString)", cell); range->setProperty("Value", i); delete range; } workbook->dynamicCall("SaveAs(const QString&)", "test.xlsx"); workbook->dynamicCall("Close()"); excel->dynamicCall("Quit()"); delete excel; } }; int main(int argc, char *argv[]) { QApplication a(argc, argv); ExcelExporter exporter; QThread thread; exporter.moveToThread(&thread); QObject::connect(&thread, &QThread::started, &exporter, &ExcelExporter::exportExcel); QObject::connect(&exporter, &ExcelExporter::finished, &thread, &QThread::quit); QObject::connect(&exporter, &ExcelExporter::finished, &exporter, &ExcelExporter::deleteLater); QObject::connect(&thread, &QThread::finished, &thread, &QThread::deleteLater); thread.start(); return a.exec(); } ``` 其中,`ExcelExporter`是一个QObject子类,用于导出Excel表格。`exportExcel()`是导出函数,该函数在另一个线程中运行。在`main()`函数中,我们将`ExcelExporter`移动到新线程中,并连接信号和槽以启动线程和在导出完成后关闭线程。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长沙红胖子Qt(长沙创微智科)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值