若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/115574041
长期持续带来更多项目与技术分享,咨询请加QQ:21497936、微信:yangsir198808
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)
合作案例专栏:案例分享(体验Demo可下载,只定制)
需求
根据提供的用户原型设计、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
若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/115574041