案例分享:Qt数据分析处理平台(兼容各国产麒麟系统)(文件域字符串解析,上万文件批量导入,折线图、散点图,正态分布图分析处理导出等)

简介: 案例分享:Qt数据分析处理平台(兼容各国产麒麟系统)(文件域字符串解析,上万文件批量导入,折线图、散点图,正态分布图分析处理导出等)

需求

  1.创建原始数据项目,项目下可以创建产品,产品自动创建四个阶段,阶段可以导入各自数据格式的原始文件;

  2.创建原始数据项目和产品的时候,参数配置文件、成功配置文件、成功数据也会创建对应的项目和产品;

  3.树形图,支持创建项目、修改项目、删除项目;

  4.树形图,项目下,支持创建产品、修改产品删除产品;

  5.树形图,产品下,自动产生四个阶段,支持创建新的阶段,修改原有阶段,删除某个阶段;

  6.大批量导出单个项目产品阶段的文件,并动态显示导入过程;’

  7.可对原始数据进行二维图的数据分布分析,并可动态调整文件和文件对应的参数;

  8.可对成功数据进行多文件综合分析,包含各文件和各文件下的解析格式,生成对应的关联关系;

  9.在使用二维图、散点图、正态分布图进行分析时,支持区域缩放,支持显示隐藏,支持截图保存,支持导出当前正在显示的二维图原始数据(隐藏的点和行数据不导出)

  10.使用sqlite3数据库;

  11.支持各windows版本和国产银河麒麟系统;

  12.其他复杂数据处理逻辑、小功能;


Demo

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  


头文件源码

#ifndef DATAANALYSISWIDGET_H
#define DATAANALYSISWIDGET_H
#include <QWidget>
#include <QButtonGroup>
#include <QFileDialog>
#include <QTreeWidgetItem>
#include <QStringListModel>
#include "DatabaseManager.h"
#include "TreeWidget.h"
#include "MyMessageBox.h"
#include "TreeWidgetDialog.h"
#include "PreDataDialog.h"
#include <QPoint>
class MainWindow;
namespace Ui {
class DataAnalysisWidget;
}
class DataAnalysisWidget : public QWidget
{
    Q_OBJECT
public:
    explicit DataAnalysisWidget(QWidget *parent = 0);
    ~DataAnalysisWidget();
public:
    void setMainWindow(MainWindow *pMainWindow);
protected:
    void initData();                                                            // 初始化数据
    void loadConfig();                                                          // 加载配置文件
    void saveConfig();                                                          // 存储配置文件
protected slots:    // 按钮选择槽函数
    void slot_buttonHeaderToggled(QAbstractButton *pAbstractButton, bool pressed);                  // 顶部按键
    void slot_buttonToggled(QAbstractButton *pAbstractButton, bool pressed);                        // 右侧按键:数据类型
protected slots:    // 项目管理树视图
    void slot_contextMenu_trigger(QString text, QTreeWidgetItem *pTreeWidgetItem,  QString path);   // 树状视图选择
    void slot_itemClicked(QTreeWidgetItem *pTreeWidgetItem, int count, QString path);               // 树状视图点击
protected slots:    // 原始数据树选择视图
    void slot_itemCheckedClicked(QTreeWidgetItem *pTreeWidgetItem, int count, QString path);        // 原始数据选择视图
protected slots:    // 表视图
    void slot_deleteFile(QStringList strList);                                  // 删除文件表
    void slot_exportFile(QString file);                                         // 导出文件
    void slot_exportFile(QStringList fileList);                                 // 导出所有文件
    void slot_preData();                                                        // 数据预处理
    void slot_packageAnalysis();                                                // 包络数据分析
protected slots:    // 成功数据,散点图和正态分布图
    void slot_chartTypeChanged(QString text);                                   // 包络数据分析:切换散点图/正态分布图
    void slot_listViewItemClicked(QModelIndex modelIndex);                      // 包络数据分析:点击选择列
protected:
    void createProject(QString text, QTreeWidgetItem *pTreeWidgetItem);         // 创建项目
    void modifyProject(QString text, QTreeWidgetItem *pTreeWidgetItem);         // 修改项目
    void deleteProject(QString text, QTreeWidgetItem *pTreeWidgetItem);         // 删除项目
    void createProduct(QString text, QTreeWidgetItem *pTreeWidgetItem);         // 创建产品
    void modifyProduct(QString text, QTreeWidgetItem *pTreeWidgetItem);         // 修改产品
    void deleteProduct(QString text, QTreeWidgetItem *pTreeWidgetItem);         // 删除产品
    void createStage(QString text, QTreeWidgetItem *pTreeWidgetItem);           // 创建阶段
    void modifyStage(QString text, QTreeWidgetItem *pTreeWidgetItem);           // 修改阶段
    void deleteStage(QString text, QTreeWidgetItem *pTreeWidgetItem);           // 删除阶段
    void deleteFile(QString text, QTreeWidgetItem *pTreeWidgetItem);            // 删除文件
    void importOriginData(QString text, QTreeWidgetItem *pTreeWidgetItem);      // 导入原始数据(其他几个数据也同用此函数)
    void exportOriginData(QString text, QString file);                          // 导出原始数据(其他几个数据也同用此函数)
    void exportOriginData(QString text, QStringList fileList);                  // 导出原始数据(其他几个数据也同用此函数),右键表导出所有
    void updatePieChartFiles(QTreeWidgetItem *pTreeWidgetItem, int count);      // 更新饼图
    void updateTableAutoColumnContent(QTreeWidgetItem *pTreeWidgetItem);        // 更新自动列的table
protected:
    void intoPreData(QStringList strList = QStringList());                      // 切换至预处理
    void updatePreData(QString project, QString product, QString stage, QString file);
    bool intoAnalysisData();                                                    // 切换至包络数据分析
    bool updateAnalysisData(QString project, QString product, QString stage);   // 更新分析数据
protected:
    void loadProject();                                                         // 加载项目(根据选择的按钮判断)
    void loadProject(int index);                                                // 加载指定项目(0,1,2,3)
    void updateTree();                                                          // 更新树视图
    void updateTable();                                                         // 更新表格
    void updatePieChart();                                                      // 更新饼图
    void updateTableAutoColumn();                                               // 更新表格动态列
protected:
    void debugProject();                                                        // 调试工程
protected:
    void mousePressEvent(QMouseEvent *event);
    void mouseMoveEvent(QMouseEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);
    void mouseDoubleClickEvent(QMouseEvent *event);
private slots:
    void on_pushButton_export_clicked();                                        // 导入按钮
    void on_pushButton_import_clicked();                                        // 导出按钮
    void on_checkBox_firstAsAixsX_clicked(bool checked);                        // 第一列是否作为X轴
    void on_pushButton_succeeDataPath_clicked();                                // 成功数据路径切换按钮
    void on_pushButton_preDealPath_clicked();                                   //
private slots:
    void on_pushButton_exit_clicked();          // 退出
    void on_pushButton_hide_clicked();          // 隐藏
    void on_pushButton_min_clicked();           // 最小化按钮
    void on_pushButton_max_clicked();           // 最大化按钮
    void on_pushButton_search_clicked();        // 搜索按钮
    void on_pushButton_clear_clicked();         // 清空按钮
private:
    Ui::DataAnalysisWidget *ui;
    QButtonGroup _buttonGroup;
    QButtonGroup _buttonGroupHeader;
    DatabaseManager _databaseManager;           // 数据库管理类
    QList<Project> _listProject;                // 项目信息数据结构
    QList<FileInfo> _listFileInfo;              // 文件信息数据结构
    QList<FilePieChart> _listFilePieChart;      // 饼图数据结构
    QString _content;                           // 辅助变量
    TreeWidget *_pTreeWidget;                   // 树状空间
    QDialog *_pDialog;                          // 树状对话框
    QPoint _originPoint;                        // 辅助变量
    QPoint _lastPoint;                          // 辅助变量
    bool _leftButtonPressed;                    // 辅助变量
    QString _lastDir;                           // 记录最后一次打开目录
    int _msgWidth;                              // 消息对话框宽度
    int _msgHeight;                             // 消息对话框高度
    MyMessageBox *_pMyMessageBox;               // 全局消息对话框(用于加载数据)
    QString _cfgFile;                           // 配置文件路径
    MainWindow *_pMainWindow;                   // MainWindow窗口指针
};
#endif // DATAANALYSISWIDGET_H


相关文章
|
机器学习/深度学习 文字识别 监控
安全监控系统:技术架构与应用解析
该系统采用模块化设计,集成了行为识别、视频监控、人脸识别、危险区域检测、异常事件检测、日志追溯及消息推送等功能,并可选配OCR识别模块。基于深度学习与开源技术栈(如TensorFlow、OpenCV),系统具备高精度、低延迟特点,支持实时分析儿童行为、监测危险区域、识别异常事件,并将结果推送给教师或家长。同时兼容主流硬件,支持本地化推理与分布式处理,确保可靠性与扩展性,为幼儿园安全管理提供全面解决方案。
540 3
|
10月前
|
网络协议 安全 区块链
DNS+:互联网的下一个十年,为什么域名系统正在重新定义数字生态? ——解读《“DNS+”发展白皮书(2023)》
DNS+标志着域名系统从基础寻址工具向融合技术、业态与治理的数字生态中枢转变。通过与IPv6、AI和区块链结合,DNS实现了智能调度、加密传输等新功能,支持工业互联网、Web3及万物互联场景。当前,中国IPv6用户达7.6亿,全球DNSSEC支持率三年增长80%,展现了其快速发展态势。然而,DNS+仍面临安全威胁、技术普惠瓶颈及生态协同挑战。未来,需推动零信任DNS模型、加强威胁情报共享,并加速标准制定,以筑牢数字时代网络根基,实现更安全、高效的数字生态建设。
618 4
|
开发框架 .NET 中间件
.net8 使用 license 证书授权案例解析
本文介绍了如何使用 `.NET CLI` 创建并改造一个 `ASP.NET Core Web API` 项目,以实现基于许可证的授权机制。具体步骤包括创建项目、添加必要的 NuGet 包(如 `Standard.Licensing` 和 `Swashbuckle.AspNetCore`),以及修改 `Program.cs` 文件以集成自定义的许可证验证中间件。项目结构中新增了 `LicenseController` 接口用于处理授权相关操作,并通过测试流程验证了默认天气接口在未授权和授权状态下的响应情况。整个过程确保了应用程序能够在启动时正确验证许可证,保障系统的安全性与可控性。
661 9
.net8 使用 license 证书授权案例解析
|
传感器 人工智能 监控
反向寻车系统怎么做?基本原理与系统组成解析
本文通过反向寻车系统的核心组成部分与技术分析,阐述反向寻车系统的工作原理,适用于适用于商场停车场、医院停车场及火车站停车场等。如需获取智慧停车场反向寻车技术方案前往文章最下方获取,如有项目合作及技术交流欢迎私信作者。
978 2
|
机器学习/深度学习 人工智能 自然语言处理
AI技术如何重塑客服系统?解析合力亿捷AI智能客服系统实践案例
本文探讨了人工智能技术在客服系统中的应用,涵盖技术架构、关键技术和优化策略。通过感知层、认知层、决策层和执行层的协同工作,结合自然语言处理、知识库构建和多模态交互技术,合力亿捷客服系统实现了智能化服务。文章还提出了用户体验优化、服务质量提升和系统性能改进的方法,并展望了未来发展方向,强调其在客户服务领域的核心价值与潜力。
768 6
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
507 4
|
机器学习/深度学习 人工智能 搜索推荐
技术革新下的培训新趋势:案例解析
从最初的“试试看”,到如今的“非做不可”,企业培训已经成为央国企和上市公司不可或缺的战略环节。无论是AI与大模型的赋能,DeepSeek,还是具身智能、智算技术和数据科学的实战应用,这些课程都在为企业打开新的可能性。
|
人工智能 自然语言处理 算法
DeepSeek大模型在客服系统中的应用场景解析
在数字化浪潮下,客户服务领域正经历深刻变革,AI技术成为提升服务效能与体验的关键。DeepSeek大模型凭借自然语言处理、语音交互及多模态技术,显著优化客服流程,提升用户满意度。它通过智能问答、多轮对话引导、多模态语音客服和情绪监测等功能,革新服务模式,实现高效应答与精准分析,推动人机协作,为企业和客户创造更大价值。
978 5
|
人工智能 自然语言处理 算法
DeepSeek 大模型在合力亿捷工单系统中的5大应用场景解析
工单系统是企业客户服务与内部运营的核心工具,传统系统在分类、派发和处理效率方面面临挑战。DeepSeek大模型通过自然语言处理和智能化算法,实现精准分类、智能分配、自动填充、优先级排序及流程优化,大幅提升工单处理效率和质量,降低运营成本,改善客户体验。
676 2
|
存储 前端开发 JavaScript
在线教育网课系统源码开发指南:功能设计与技术实现深度解析
在线教育网课系统是近年来发展迅猛的教育形式的核心载体,具备用户管理、课程管理、教学互动、学习评估等功能。本文从功能和技术两方面解析其源码开发,涵盖前端(HTML5、CSS3、JavaScript等)、后端(Java、Python等)、流媒体及云计算技术,并强调安全性、稳定性和用户体验的重要性。

推荐镜像

更多