网站收录上万没有流量,html网站开发实例教程,3d建模学费一般多少钱,山东省山东省建设厅网站首页这个功能在项目中很常见#xff0c;对界面里某个控件的数据进行记录#xff0c;我这个是每秒记录5次#xff0c;实际就是每200ms触发一次定时器#xff0c;来满足需求。 .h文件
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#include QtSerialPort
…这个功能在项目中很常见对界面里某个控件的数据进行记录我这个是每秒记录5次实际就是每200ms触发一次定时器来满足需求。 .h文件
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#include QtSerialPort
#include QSerialPortInfo
#include QTimerQT_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);}
}