若该文为原创文章,转载请注明原文出处 

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

合作案例专栏:案例分享(体验Demo可下载,只定制)
需求

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


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

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



Demo v1.8.0

  案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)_实验上位机_03
  案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)_实验上位机_04
  案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)_合作案例分享_05
  案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)_Qt二维图_06
  案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)_实验上位机_07
  案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)_合作案例分享_08


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

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


头文件源码

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

若该文为原创文章,转载请注明原文出处