当前位置: 首页 > news >正文

QT按下两次按钮,保存这期间内变换的QtextEdit控件内的数据

这个功能在项目中很常见,对界面里某个控件的数据进行记录,我这个是每秒记录5次,实际就是每200ms触发一次定时器,来满足需求。

.h文件
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QtSerialPort>
#include <QSerialPortInfo>
#include <QTimer>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();  int Times,portTime,lineEditData;void processReceivedData(const QByteArray &data);private:Ui::Widget *ui;bool isSaving = false; // 控制保存状态QString fileName; // 保存文件名QFile file; // 文件对象QTimer *timer1; // 定时器StringList dataBuffer; // 缓存数据private slots:void on_VANDI_2_clicked();         //缓存电压电流数据void saveData();

//.c文件Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);connect(timer, &QTimer::timeout, this, &Widget::saveData); //槽函数
}//保存电压电流数据
void Widget::on_VANDI_2_clicked()
{if (!isSaving) {// 开始保存数据ui->VANDI_2->setText(tr("停止缓存"));dataBuffer.clear(); // 清空数据缓存// 启动定时器,每200毫秒保存一次数据,总共5次timer->start(200);isSaving = true; // 设置保存状态为真} else {// 停止定时器,准备保存数据到文件timer->stop();isSaving = false; // 设置保存状态为假// 弹出保存文件对话框fileName = QFileDialog::getSaveFileName(this, "保存电压电流数据", "", "文本文件 (*.txt);;所有文件 (*)");if (fileName.isEmpty()) {return; // 用户取消了保存文件对话框}// 打开文件进行写入file.setFileName(fileName);if (!file.open(QFile::WriteOnly | QFile::Text)) {QMessageBox::warning(this, "err", "err");return;}// 写入缓存的数据到文件QTextStream out(&file);for (const QString &data : dataBuffer) {out << data;}// 关闭文件file.close();ui->VANDI_2->setText(tr("缓存电流电压数据"));QMessageBox::information(this, "succss", "ssss");}}void Widget::saveData()
{if (isSaving) {QString timestamp = QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss");// 构建要保存的数据字符串QString data = timestamp+":      "+"VDDA: " + QString::number(VDDA, 'f', 4) + "V"+ "|" + "VDDAI: "+QString::number(VDDAI, 'f', 4)+ "A"+"   " +"VDDD: " + QString::number(VDDD, 'f', 4) + "V"+ "|" + "VDDDI: "+QString::number(VDDDI, 'f', 4)+ "A"+"   " +"VDDIO: " + QString::number(VDDIO, 'f', 4)+ "V" + "|" +"VDDIOI: " +QString::number(VDDIOI, 'f', 4)+ "A"+"   " +"VDDAD: " + QString::number(VDDAD, 'f', 4)+ "V" + "|" +"VDDADI: " +QString::number(VDDADI, 'f', 4)+ "A"+"   " +"VDDPIX: " + QString::number(VDDPIX, 'f', 4)+ "V" + "|" +"VDDPIXI: " + QString::number(VDDPIXI, 'f', 4)+ "A"+"   " +"VGRSTH: " + QString::number(VGRSTH, 'f', 4)+ "V" + "|" +"VGRSTHI: " + QString::number(VGRSTHI, 'f', 4)+ "A" +"   " +"VTXH: " + QString::number(VTXH, 'f', 4) + "V"+ "|" +"VTXHI: " +QString::number(VTXHI, 'f', 4)+ "A" +"   " +"VTXL: " + QString::number(VTXL, 'f', 4)+ "V" + "|" +"VTXL_AD: " +QString::number(VTXL_AD, 'f', 4)+ "A"+"   " +"VGRSTL: " + QString::number(VGRSTL, 'f', 4)+ "V" + "|" +"VGESTL_AD: " + QString::number(VGESTL_AD, 'f', 4)+ "A"+"   " +"VDD_POS: " + QString::number(VDD_POS, 'f', 4)+ "V" + "|" +"VDD_POSI: " + QString::number(VDD_POSI, 'f', 4)+ "A"+"   " +"GND_ENG: " + QString::number(GND_ENG, 'f', 4)+ "V" + "|" +"VDD_POS_AD: " + QString::number(VDD_POS_AD, 'f', 4)+ "A"+"   " +"\n";// 将数据添加到缓存中dataBuffer.append(data);}
}

相关文章:

QT按下两次按钮,保存这期间内变换的QtextEdit控件内的数据

这个功能在项目中很常见&#xff0c;对界面里某个控件的数据进行记录&#xff0c;我这个是每秒记录5次&#xff0c;实际就是每200ms触发一次定时器&#xff0c;来满足需求。 .h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QtSerialPort> …...

daos源码编译

1. 前言 本文详细介绍如何在almalinux8.9上编译daos.2.0.0源码。系统环境如下&#xff1a; daos: 2.0.0 linux os: almalinux 8.9 linux kernel: 4.18.0-513.5.1.el8_9.x86_64之所以选择2.0.0版本&#xff0c;是因为daos从2.0.0开始是一个全新的架构设计&a…...

HTML飞舞的爱心

目录 系列文章 写在前面 完整代码 代码分析 写在后面 系列文章 序号目录1HTML满屏跳动的爱心&#xff08;可写字&#xff09;2HTML五彩缤纷的爱心3HTML满屏漂浮爱心4HTML情人节快乐5HTML蓝色爱心射线6HTML跳动的爱心&#xff08;简易版&#xff09;7HTML粒子爱心8HTML蓝色…...

C++中智能指针的使用及其原理 -- RAII,内存泄漏,shared_ptr,unique_ptr,weak_ptr

目录 1.智能指针的使用场景分析 2.RAII和智能指针的设计思路 3.C标准库智能指针的使用 4.智能指针的原理以及模拟实现 5.shared_ptr循环引用问题和weak_ptr 5.1shared_ptr循环引用问题 5.2weak_ptr的原理和部分接口 5.3weak_ptr的简单模拟实现 6. shared_ptr的线程安…...

Linux服务器安装mongodb

因为项目需要做评论功能&#xff0c;领导要求使用mongodb&#xff0c;所以趁机多学习一下。 在服务器我们使用docker安装mongodb 1、拉取mongodb镜像 docker pull mongo &#xff08;默认拉取最新的镜像&#xff09; 如果你想指定版本可以这样 docker pull mongo:4.4&#…...

Android11修改摄像头前后置方法,触觉智能RK3568开发板演示

本文介绍在Android11系统下&#xff0c;修改摄像头前后置属性的方法。使用触觉智能EVB3568鸿蒙开发板演示&#xff0c;搭载瑞芯微RK3568&#xff0c;四核A55处理器&#xff0c;主频2.0Ghz&#xff0c;1T算力NPU&#xff1b;支持OpenHarmony5.0及Linux、Android等操作系统&#…...

leetcode 212. 单词搜索 II

给定一个 m x n 二维字符网格 board 和一个单词&#xff08;字符串&#xff09;列表 words&#xff0c; 返回所有二维网格上的单词 。 单词必须按照字母顺序&#xff0c;通过 相邻的单元格 内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一…...

Taro 鸿蒙技术内幕系列(三) - 多语言场景下的通用事件系统设计

基于 Taro 打造的京东鸿蒙 APP 已跟随鸿蒙 Next 系统公测&#xff0c;本系列文章将深入解析 Taro 如何实现使用 React 开发高性能鸿蒙应用的技术内幕 背景 在鸿蒙生态系统中&#xff0c;虽然原生应用通常基于 ArkTS 实现&#xff0c;但在实际研发过程中发现&#xff0c;使用 C…...

《Docker Registry(镜像仓库)详解》

一、引言 在容器化技术日益普及的今天&#xff0c;Docker 已成为众多开发者和企业的首选工具。而 Docker Registry&#xff08;镜像仓库&#xff09;作为 Docker 生态系统中的重要组成部分&#xff0c;负责存储和分发 Docker 镜像。本文将深入探讨 Docker Registry 的概念、功能…...

AI前景分析展望——GPTo1 SoraAI

引言 人工智能&#xff08;AI&#xff09;领域的飞速发展已不仅仅局限于学术研究&#xff0c;它已渗透到各个行业&#xff0c;影响着从生产制造到创意产业的方方面面。在这场技术革新的浪潮中&#xff0c;一些领先的AI模型&#xff0c;像Sora和OpenAI的O1&#xff0c;凭借其强大…...

超级详细讲解转义字符,\? \‘ \f \0 \t等等!!!

C语言有一组特殊的字符称作转义字符&#xff0c;顾名思义&#xff0c;转变原来的意思 1 \? ??)是一个三字母词&#xff0c;在以前的编译器它会被编译为] (??会被编译为[ 因此在以前输入(are you ok ??)就会被编译为are you ok ] 解决这个问题只要在问号前输入\&#xf…...

微信小程序数据请求教程:GET与POST请求详解

微信小程序数据请求教程:GET与POST请求详解 引言 在微信小程序的开发过程中,数据请求是至关重要的一部分。通过与后端服务器进行通信,小程序能够获取动态数据,实现丰富的功能。在这篇文章中,我们将深入探讨微信小程序中的数据请求,重点介绍GET和POST请求的使用方法、示…...

Linux系统管理基础指南--习题

目录 一、基础知识与命令 二、 Linux的用户接口 三、文件权限与目录管理 四、shell相关知识 五、软件安装与网络 六、网络进程管理 一、基础知识与命令 1. (操作题)分别执行下述命令 ls -al cd ~ cd man -f man man –k cd man --help cal --help date --help bc --he…...

JVM(JAVA虚拟机)内存溢出导致内存不足,Java运行时环境无法继续

1、先贴出服务最后打印出来的日志&#xff0c;意思就是给虚拟机分配的内存被用完了&#xff0c;没有可用的内存了&#xff0c;服务运行不了了&#xff0c;被动停服了。详细的日志记录在了/home/user/zx/tomcat/apache-tomcat-8.5.82/bin/hs_err_pid147951.log文件里。 Java Ho…...

IOC控制反转详解

IOC&#xff08;控制反转&#xff09; component的衍生注解 前面曾经提到&#xff0c;若想要把某个对象交给IOC容器管理&#xff0c;就需要在其声明上加上Component注解。但是Spring中有三层架构&#xff0c;为了更加清晰的标注对象是属于哪一层的&#xff0c;提供了三个Comp…...

Qml-TabBar类使用

Qml-TabBar类使用 TabBar的概述 TabBar继承于Container 由TabButton进行填充&#xff0c;可以与提供currentIndex属性的任何容器或布局控件一起使用&#xff0c;如StackLayout 或 SwipeView&#xff1b;contentHeight : real:TabBar的内容高度&#xff0c;用于计算标签栏的隐…...

C# 常量

文章目录 前言一、整数常量&#xff08;一&#xff09;合法与非法实例对比&#xff08;二&#xff09;不同进制及类型示例 二、浮点常量三、字符常量四、字符串常量五、定义常量 前言 在 C# 编程的世界里&#xff0c;常量是一类特殊的数据元素&#xff0c;它们如同程序中的 “定…...

diffusion model: prompt-to-prompt 深度剖析

参考&#xff1a;diffusion model(十四)&#xff1a; prompt-to-prompt 深度剖析-CSDN博客 P2P提出的Motivation 目前大火的文生图技术(text to image)&#xff0c;给定一段文本&#xff08;prompt&#xff09;和随机种子&#xff0c;文生图模型会基于这两者生成一张图片。生…...

uniapp实现APP版本升级

App.vue 直接上代码 <script>export default {methods: {//APP 版本升级Urlupload() {// #ifdef APP-PLUSplus.runtime.getProperty(plus.runtime.appid, (info) > {// 版本号变量持久化存储getApp().globalData.version info.version;this.ToLoadUpdate(info.versi…...

uniapp强制修改radio-group内单选组件的状态方法

在uniapp开发中&#xff0c;需要在radio-group内部切换时做判断&#xff0c;提醒客户是否要变换radio的值&#xff0c;但是大家知道radio是单选组件&#xff0c;往往你点击后&#xff0c;是不能再修改状态的&#xff0c;就算你在点击后做判断&#xff0c;修改current的值&#…...

跨境云手机适用于哪些场景

跨境云手机适用于多种场景&#xff0c;能为不同用户群体带来便利与价值&#xff0c;对于跨境电商从业者而言&#xff0c;可用于多账号管理与运营&#xff0c;通过在云端虚拟出不同地区、不同配置的手机环境&#xff0c;实现多个店铺账号的同时登录和独立操作&#xff0c;有效规…...

JavaWeb Listener 监听器详解:三大域对象监听 + 在线人数统计实战

前言Listener&#xff08;监听器&#xff09;是 JavaWeb 三大组件最后一个&#xff0c;专门用于监听 Web 域对象的创建、销毁、属性变化&#xff0c;在事件触发时自动执行逻辑。它是基于观察者模式实现&#xff0c;常用于&#xff1a;服务器初始化、在线用户统计、Session 监听…...

Phi-4-Reasoning-Vision从零开始:双卡4090环境nvidia-smi调优

Phi-4-Reasoning-Vision从零开始&#xff1a;双卡4090环境nvidia-smi调优 1. 项目概述 Phi-4-Reasoning-Vision是基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具&#xff0c;专为双卡4090环境优化。这个工具严格遵循官方SYSTEM PROMPT规范&#xff0c;…...

实战演练,用快马生成GitHub团队协作项目,掌握Issue管理和CI/CD集成

最近在团队协作开发时&#xff0c;发现很多新成员对GitHub的完整工作流不太熟悉。于是我用InsCode(快马)平台快速搭建了一个GitHub实战项目&#xff0c;模拟真实开发场景。这个项目特别适合想系统学习团队协作的小伙伴&#xff0c;下面分享我的实践过程&#xff1a; 项目初始化…...

机票价格智能监控:如何用Flight Spy锁定最佳购票时机

机票价格智能监控&#xff1a;如何用Flight Spy锁定最佳购票时机 【免费下载链接】flight-spy Looking for the cheapest flights and dont have enough time to track all the prices? 项目地址: https://gitcode.com/gh_mirrors/fl/flight-spy 你是否曾在预订机票时陷…...

终极Modbus测试工具:OpenModScan让工业通讯调试变得前所未有的简单

终极Modbus测试工具&#xff1a;OpenModScan让工业通讯调试变得前所未有的简单 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan 在工业自动化领域&#xff0c;Modbus协议…...

OpenClaw+GLM-4.7-Flash:3个提升开发效率的自动化脚本

OpenClawGLM-4.7-Flash&#xff1a;3个提升开发效率的自动化脚本 1. 为什么选择这个技术组合&#xff1f; 作为一名长期在终端里摸爬滚打的开发者&#xff0c;我一直在寻找能够真正融入日常工作的AI助手方案。直到遇到OpenClawGLM-4.7-Flash这个组合&#xff0c;才找到了理想…...

QDKTAI实战面试题50问之41-50

一、逐题详细解析&#xff08;41-50题&#xff09;第41题&#xff1a;如何设计一个有效的AI内容审核系统&#xff1f;1. 考察重点对大模型“生成式而非判别式”核心特性的理解识别AI审核场景中的关键冲突点&#xff08;长文本处理、语气/风格干扰&#xff09;针对性解决方案的设…...

【愚公系列】《剪映+DeepSeek+即梦:短视频制作》026-字幕:用文字来美化画面(美化字幕)

&#x1f48e;【行业认证权威头衔】 ✔ 华为云天团核心成员&#xff1a;特约编辑/云享专家/开发者专家/产品云测专家 ✔ 开发者社区全满贯&#xff1a;CSDN博客&商业化双料专家/阿里云签约作者/腾讯云内容共创官/掘金&亚马逊&51CTO顶级博主 ✔ 技术生态共建先锋&am…...

抖音无水印视频下载器技术架构深度解析:从HTTP解析到跨平台应用实现

抖音无水印视频下载器技术架构深度解析&#xff1a;从HTTP解析到跨平台应用实现 【免费下载链接】douyin_downloader 抖音短视频无水印下载 win编译版本下载&#xff1a;https://www.lanzous.com/i9za5od 项目地址: https://gitcode.com/gh_mirrors/dou/douyin_downloader …...