1. 项目概述:Qt温湿度数据记录上位机开发
在工业自动化和环境监测领域,温湿度数据采集是基础而重要的需求。作为一名有多年Qt开发经验的工程师,我经常需要为各类传感器设备开发配套的上位机软件。这次分享的是一个基于Qt框架的温湿度数据记录系统实现方案,适用于Windows平台,核心功能包括实时数据显示、定时采样和数据持久化存储。
这个项目的典型应用场景包括:
- 实验室环境监测
- 仓储温湿度监控
- 生产线环境质量控制
- 农业大棚环境记录
选择Qt作为开发框架主要基于以下考虑:
- 跨平台特性便于后续移植到其他操作系统
- 丰富的GUI组件库可快速构建专业界面
- 完善的文档和活跃的社区支持
- 对硬件通信协议的良好支持(如串口、Modbus等)
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 开发环境准备与项目创建
2.1 工具链配置
推荐使用以下开发环境组合:
- Qt 5.15.2 LTS版本(长期支持版更稳定)
- Qt Creator 4.15.0及以上
- MSVC 2019编译器(与Windows平台兼容性最佳)
- Git版本控制(可选但推荐)
安装时需特别注意勾选以下组件:
- Qt Charts模块(用于后续数据可视化扩展)
- SerialPort模块(为实际硬件连接做准备)
- 对应版本的MSVC编译器工具链
2.2 项目初始化步骤
- 打开Qt Creator,选择"文件"→"新建文件或项目"
- 在Application类别中选择"Qt Widgets Application"
- 设置项目名称(如"TemperatureHumidityMonitor")
- 在"Kit Selection"页面确保选中MSVC编译器
- 类信息页面保持默认的QMainWindow作为主窗口
- 完成创建后,在.pro文件中添加必要的模块依赖:
qmake复制QT += core gui serialport
CONFIG += c++17
提示:即使初期使用模拟数据,也建议提前添加serialport模块,避免后期实际连接硬件时需要重新配置项目。
3. 用户界面设计与实现
3.1 主界面布局设计
使用Qt Designer设计主界面时,建议采用以下布局结构:
code复制主窗口
├── 顶部工具栏(QToolBar)
│ ├── 开始/停止按钮(QPushButton)
│ ├── 记录间隔设置(QSpinBox)
│ └── 文件保存路径选择(QPushButton)
├── 中央区域(QWidget)
│ ├── 实时数据显示区(QGroupBox)
│ │ ├── 温度显示(QLCDNumber)
│ │ └── 湿度显示(QLCDNumber)
│ └── 数据记录表格(QTableWidget)
└── 状态栏(QStatusBar)
└── 最后更新时间显示(QLabel)
关键设计要点:
- 使用QLCDNumber组件显示数值,比QLabel更具专业感
- 数据表格采用QTableWidget而非QTextEdit,便于后续数据导出
- 添加记录间隔设置功能,增强系统灵活性
- 状态栏显示最后采样时间,提升用户体验
3.2 UI与业务逻辑绑定
在MainWindow类中实现界面与逻辑的绑定:
cpp复制// mainwindow.h
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
private slots:
void onStartStopClicked();
void updateSensorData();
void selectSavePath();
private:
Ui::MainWindow *ui;
QTimer *m_timer;
QString m_savePath = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
bool m_isRecording = false;
void setupConnections();
void saveToFile(double temp, double humidity);
void updateTable(double temp, double humidity);
};
