# sample-holder-demo **Repository Path**: szonebit/sample-holder-demo ## Basic Information - **Project Name**: sample-holder-demo - **Description**: sample holder demo which focus on ui - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-28 - **Last Updated**: 2025-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 生化免疫仪器样本架管理系统 这是一个使用C++和QML开发的生化免疫仪器样本架管理系统,用于显示和管理5孔样本架及其测试状态。 ## 功能特性 - **左侧样本架列表**:以图形化方式显示所有样本架,每个样本架包含5个孔 - **状态可视化**:使用不同颜色显示测试状态(未测试、测试中、测试中断、测试完成) - **右侧测试详情**:以表格形式显示选中样本架的所有测试信息 - **孔位交互**:点击样本架中的具体孔位,右侧表格会高亮对应的测试行 - **大量样本架支持**:支持显示大量样本架(默认20个),支持滚动查看 - **快速跳转**:支持输入架号快速跳转到指定样本架 - **实时状态更新**:模拟测试状态的变化,每3秒随机更新某个孔的状态 - **现代化UI**:使用Material Design风格的界面设计 ## 测试状态说明 - **灰色**:未测试 - **黄色**:正在测试中 - **红色**:测试中断 - **绿色**:测试完成 ## 交互功能 ### 样本架操作 - **点击样本架**:选中整个样本架,右侧显示该样本架的所有测试信息 - **点击具体孔位**:选中特定孔位,右侧表格高亮显示对应的测试行 - **孔位高亮**:选中的孔位会显示蓝色边框,表格中对应行会高亮显示 - **滚动查看**:使用鼠标滚轮或滚动条浏览所有样本架 - **快速跳转**:在"跳转到"输入框中输入架号快速定位 ### 表格操作 - **点击表格行**:可以直接在表格中点击行来选中对应的孔位 - **双向同步**:样本架孔位选择和表格行选择保持同步 ### 滚动功能 - **垂直滚动**:支持鼠标滚轮和滚动条滚动 - **平滑滚动**:滚动条具有平滑的动画效果 - **自动定位**:跳转时自动将目标样本架滚动到视图中央 - **性能优化**:使用图层缓存优化滚动性能 ## 系统要求 - Qt 6.0 或更高版本 - CMake 3.16 或更高版本 - C++17 兼容的编译器 ## 构建说明 ### Windows (使用Visual Studio) 1. 确保已安装Qt 6和CMake 2. 双击运行 `build.bat` 文件,或手动执行以下命令: ```bash mkdir build cd build cmake .. -G "Visual Studio 16 2019" -A x64 cmake --build . --config Release ``` ### Linux/macOS 1. 确保已安装Qt 6和CMake 2. 创建构建目录: ```bash mkdir build cd build ``` 3. 配置项目: ```bash cmake .. ``` 4. 构建项目: ```bash make ``` ## 运行程序 构建完成后,可执行文件位于 `build` 目录中: ```bash ./BioImmunoAnalyzer # Linux/macOS BioImmunoAnalyzer.exe # Windows ``` ## 项目结构 ``` uidemo/ ├── CMakeLists.txt # CMake配置文件 ├── main.cpp # 主程序入口 ├── sampleholder.h/cpp # 样本架数据模型 ├── sampleholderlistmodel.h/cpp # 样本架列表模型 ├── testitem.h/cpp # 测试项目数据模型 ├── testlistmodel.h/cpp # 测试列表模型 ├── build.bat # Windows构建脚本 └── qml/ ├── main.qml # 主界面 ├── SampleHolderDelegate.qml # 样本架列表项组件 └── TestTableView.qml # 测试表格组件 ``` ## 使用说明 1. **启动程序**:运行可执行文件,左侧会显示样本架列表 2. **查看样本架**:每个样本架以长条矩形显示,包含5个圆形孔位 3. **滚动浏览**:使用鼠标滚轮或滚动条浏览所有样本架 4. **快速跳转**:在跳转输入框中输入架号(1-20),点击跳转按钮 5. **选择样本架**:点击样本架任意位置选中整个样本架 6. **选择孔位**:点击具体孔位,右侧表格会高亮对应行 7. **查看详情**:右侧表格显示选中样本架的所有测试信息 8. **实时更新**:程序每3秒自动更新某个孔的状态 ## 性能优化 - **图层缓存**:使用Qt的layer缓存机制优化渲染性能 - **虚拟化滚动**:ListView自动处理大量数据的显示 - **平滑动画**:滚动条和状态变化具有平滑的动画效果 - **内存管理**:合理的内存分配和释放策略 ## 技术特点 - **MVC架构**:使用Qt的Model-View架构,数据与界面分离 - **响应式设计**:界面会根据窗口大小自动调整 - **状态管理**:使用枚举类型管理测试状态,确保类型安全 - **信号槽机制**:使用Qt的信号槽机制实现组件间通信 - **交互设计**:支持样本架和孔位的精确选择与高亮 - **滚动优化**:支持大量数据的流畅滚动显示 - **现代化UI**:使用QML实现流畅的用户界面 ## 扩展功能 可以轻松扩展以下功能: - 添加更多样本架 - 增加测试参数配置 - 实现数据持久化 - 添加用户权限管理 - 集成数据库支持 - 添加测试结果详情页面 - 实现测试进度条显示 - 添加搜索和过滤功能 - 支持样本架分组管理 - 添加数据导出功能