基于Qt4的电机连续性测试软件开发

本文介绍了一款基于Qt4开发的磁场连续性测试软件,旨在解决研究人员自行计算磁场连续性的难题。软件能打开多个文件,指定时间段绘图,并可保存为图片。开发流程包括框架搭建、文件打开绘图、列表控件关联及程序测试,确保了软件的实用性和准确性。
摘要由CSDN通过智能技术生成

磁场连续性是磁场传感器的重要测试内容,但目前没有合适的软件可用,研究人员一般是自行计算,但报告内容不标示清楚的话难以理解,也无法评判连续性指标是否合格。因此,需要开发一款专门用于磁场连续性测试的软件,所有数据都在同一框架下计算,这样就能清楚的反映在测试报告里。

目录

1 功能需求

2 技术思路

3 开发流程

1 框架搭建

2 打开文件并绘图

3 关联到列表和控件

4 保存为图片

4 程序测试

5 结语


1 功能需求

1 打开多个文件

2 每个文件的时间段可以指定

3 可根据时间段绘图

4 可保存为图片

2 技术思路

程序注重的是曲线图,因此无需查看数据内容,用列表显示加载文件即可。时间段的指定可以用spinBox来指定。

3 开发流程

1 框架搭建

首先新建main window应用,并设计UI界面。

UI的基本逻辑是,打开文件后,显示在列表上,同时绘图。点击文件,可切换其时间段,通过spinBox可以切换具体时间,同时刷新绘图。

2 打开文件并绘图

打开功能承载两项任务,就是打开数据并绘图。

// 指定多个文件
    QStringList files = QFileDialog::getOpenFileNames(this,"Open files","","*.txt");
    if(files.isEmpty())
        return;

    // 逐个文件读取并绘图
    ui->plot->clearGraphs();
    ui->plot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);
    tMat.clear();
    vMat.clear();
    QVector<double> xmin,xmax,ymin,ymax;
    for(int i = 0; i<files.count(); i++)
    {
        // 读取时间和测量值 形成x和y
        QFile file(files.at(i));
        if(!file.open(QIODevice::ReadOnly))
            return;
        QTextStream in(&file);
        QString line;
        QVector<double> t,v;
        // 读文件头 共7行
        line = in.readLine();
        line = in.readLine();
        line = in.readLine();
        QStringList info = line.split(" ");
        QString name = info.at(3).right(3);
        line = in.readLine();
        line = in.readLine();
        line = in.readLine();
        line = in.readLine();
        // 读表格数据
        while(!in.atEnd()){
            line = in.readLine();
            QStringList list = line.split(" ",QString::SkipEmptyParts);
            double tim = list.at(0).toDouble();
            t<<hms2dec(tim)/3600.0;
            v<<list.at(1).toDouble();
        }
        file.close();
        // 存储到大矩阵
        tMat<<t;
        vMat<<v;
        // 获取当前范围
        xmin<<getMin(t);
        xmax<<getMax(t);
        ymin<<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Intimes

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

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

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

打赏作者

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

抵扣说明:

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

余额充值