案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)

简介: 案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)

需求

  根据提供的用户原型设计、ui设计、通讯协议研发便携式致病菌快速检测仪器软件。

  100%还原ui。


相关博客

  《案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出exce、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)

  《案例分享:Qt多段Y轴折线图框架(双Y轴段折线、支持拽拖、浮动游标显示X值各段Y值、支持大量实时显示下位机数据)

  《案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)

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

  《Qt开发笔记之QCustomPlot:QCustomPlot介绍、编译与使用

  《Qt开发笔记之Qwt(一):Qwt介绍、编译与Demo


基本主功能(推荐visio:★★★☆☆,前期主流程需求整理)

  

  



Demo v1.8.0

  

  

  

  

  

  


蓝湖Ui原型(推荐蓝湖:★★★★★,产品经理需求-ui设计界面-研发角色间的“零沟通成本”工具,拥有PS插件具备一键上传功能)

  


头文件源码

HeSuanCheckWidget.h

#ifndef HESUANCHECKWIDGET_H
#define HESUANCHECKWIDGET_H
#include <QWidget>
#include <QThread>
#include <QDebug>
#include <QTimer>
#include <QButtonGroup>
#include <QMenu>
#include "SerialPortManager.h"
#include "ConfigWidget.h"
#include "HistoryWidget.h"
#include "QuickStartWidget.h"
#include "TestProtocalWidget.h"
#include "UserManagerWidget.h"
#include "LoginWidget.h"
#include "DatabaseManager.h"
#include "RunWidget.h"
#include "TemplateManager.h"
#include "AdvanceWidget.h"
#include "UserAdvanceManagerWidget.h"
#include "ReportWidget.h"
#include "AboutDialog.h"
#define     LOG     qDebug()<<__FILE__<<__LINE__
namespace Ui {
class HeSuanCheckWidget;
}
class HeSuanCheckWidget : public QWidget
{
    Q_OBJECT
public:
    explicit HeSuanCheckWidget(QWidget *parent = 0);
    ~HeSuanCheckWidget();
    UserInfo getUserInfo() const;
    ExpriInfo getExpriInfo() const;
    void setExpriInfo(const ExpriInfo &expriInfo);
protected slots:
    void slot_recvFromSerialPort(QByteArray byteArray); //  接收串口数据
    void slot_updateUserInfo();
protected:
    void loadCfg();
    void saveCfg();
    void showLogined(bool login);             // 切换登录界面(主要是header需要调整)
protected slots:        // 界面切换信号
    void slot_login(UserInfo userInfo);
    void slot_switchToLoginWidget();
    void slot_switchToQuickWidget();
    void slot_switchToHistoryWidget();
    void slot_switchToConfigWidget();
    void slot_switchToTestProtocalWidget();
    void slot_switchToTemplateManager();
    void slot_switchToUserManagerWidget();
    void slot_switchToRunWidget();
    void slot_switchToAdvaneWidget();
    void slot_switchToUserAdvanceManagerWidget();
    void slot_switchToReportWidget(ExpriInfo expriInfo);
    void slot_showFullScreenRunWidget();  // 全屏显示
    void slot_showNormalRunWidget();  // 非全屏显示
protected slots:
    void slot_menuTriggered(QAction *pAction);
protected:
    void mousePressEvent(QMouseEvent *event);
    void mouseMoveEvent(QMouseEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);
private slots:
    void on_pushButton_close_clicked();
    void on_pushButton_min_clicked();
    void on_pushButton_menu_clicked();
    void on_pushButton_menu2_clicked();
    void on_pushButton_min2_clicked();
    void on_pushButton_close2_clicked();
private:
    Ui::HeSuanCheckWidget *ui;
    QButtonGroup *_pButtonGroup;
    QThread *_pSerialPortManagerThread;
    SerialPortManager *_pSerialPortManager;
    QuickStartWidget *_pQuickStartWidget;
    HistoryWidget *_pHistoryWidget;
    ConfigWidget *_pConfigWidget;
    TestProtocalWidget *_pTestProtocalWidget;
    UserManagerWidget *_pUserManagerWidget;
    LoginWidget *_pLoginWidget;
    RunWidget *_pRunWidget;
    TemplateManager *_pTemplateManager;
    AdvanceWidget *_pAdvanceWidget;
    UserAdvanceManagerWidget *_pUserAdvanceManagerWidget;
    ReportWidget *_pReportWidget;
    QMenu *_pMenu;
    QMenu *_pMenu2;
    QAction *_pActionPrint;
    QAction *_pActionLanguage;
    QAction *_pActionConfig;
    QAction *_pActionUpgrade;
    QAction *_pActionAbout;
    QAction *_pActionAbout2;
    QAction *_pActionLogout;
    QAction *_pActionModifyPassword;
    QPoint _beginPoint;
    QPoint _leftTopPoint;
    bool _leftButtonPressed;
    UserInfo _userInfo;             // 当前登录的用户信息
    ExpriInfo _expriInfo;           // 当前实验的实验信息(当实验名称为空,则表示当前没有实验)
    QString _cfgFile;
};
#endif // HESUANCHECKWIDGET_H



相关文章
|
3月前
|
网络协议
Qt中的网络编程(Tcp和Udp)运用详解以及简单示范案例
Tcp和Udp是我们学习网络编程中经常接触到的两个通讯协议,在Qt也被Qt封装成了自己的库供我们调用,对于需要进行网络交互的项目中无疑是很重要的,希望这篇文章可以帮助到大家。 是关于Qt中TCP和UDP的基本使用和特点:
342 7
|
2月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
3月前
|
开发者
Qt中的事件该如何学习?(附带案例)
事件是Qt中比较重要的一部分,在初期如果理解不当学习可能会比较困难,这里提一嘴当初教我的那位老师水平是真的高,让我很轻易的就理解了事件的概念。 在平时我们见到那些界面上的某些快捷键就有可能是事件做的,例如ESC关闭窗口,Enter提交或者登录这种类似的,这也是事件的强大之处。
|
5月前
|
JSON 网络协议 开发工具
基于Qt实现的TCP端口数据转发服务器
基于Qt实现的TCP端口数据转发服务器
60 0
基于Qt实现的TCP端口数据转发服务器
|
5月前
|
消息中间件 Linux API
跨进程通信设计:Qt 进程间通讯类全面解析
跨进程通信设计:Qt 进程间通讯类全面解析
360 0
|
3月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
145 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
2月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
50 0
下一篇
无影云桌面