From 2cc4722eeea720490d2c562c6feaa86eccac4e16 Mon Sep 17 00:00:00 2001 From: 123 <123@example.com> Date: Mon, 23 Jun 2025 15:58:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=98=E5=9C=BA=E6=8E=A2=E7=B4=A2=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E8=AE=BE=E8=AE=A1=E5=92=8C=E5=9F=BA=E7=A1=80=E7=BC=96?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Client/.promptx/memory/declarative.md | 71 ++ src/Client/.promptx/pouch.json | 158 +++- .../qt-ui-designer-simple.role.md | 40 + .../design-documentation-process.execution.md | 91 +++ .../qt-ui-design-workflow.execution.md | 105 +++ .../design-documentation-methods.knowledge.md | 46 ++ .../knowledge/qt-ui-expertise.knowledge.md | 72 ++ .../qt-ui-designer/qt-ui-designer.role.md | 18 + .../documentation-expression.thought.md | 77 ++ .../thought/ui-design-thinking.thought.md | 71 ++ .../.promptx/resource/project.registry.json | 125 +++- src/Client/BattlefieldExplorationSystem | Bin 609696 -> 687504 bytes src/Client/BattlefieldExplorationSystem.pro | 2 + .../doc/ui_design/right_panel_design_spec.md | 348 +++++++++ .../ui_design/right_panel_implementation.cpp | 682 ++++++++++++++++++ .../ui/components/RightFunctionPanel.h | 333 +++++++++ src/Client/include/ui/main/MainWindow.h | 74 ++ .../src/ui/components/RightFunctionPanel.cpp | 631 ++++++++++++++++ src/Client/src/ui/main/MainWindow.cpp | 215 ++++++ 19 files changed, 3148 insertions(+), 11 deletions(-) create mode 100644 src/Client/.promptx/resource/domain/qt-ui-designer-simple/qt-ui-designer-simple.role.md create mode 100644 src/Client/.promptx/resource/domain/qt-ui-designer/execution/design-documentation-process.execution.md create mode 100644 src/Client/.promptx/resource/domain/qt-ui-designer/execution/qt-ui-design-workflow.execution.md create mode 100644 src/Client/.promptx/resource/domain/qt-ui-designer/knowledge/design-documentation-methods.knowledge.md create mode 100644 src/Client/.promptx/resource/domain/qt-ui-designer/knowledge/qt-ui-expertise.knowledge.md create mode 100644 src/Client/.promptx/resource/domain/qt-ui-designer/qt-ui-designer.role.md create mode 100644 src/Client/.promptx/resource/domain/qt-ui-designer/thought/documentation-expression.thought.md create mode 100644 src/Client/.promptx/resource/domain/qt-ui-designer/thought/ui-design-thinking.thought.md create mode 100644 src/Client/doc/ui_design/right_panel_design_spec.md create mode 100644 src/Client/doc/ui_design/right_panel_implementation.cpp create mode 100644 src/Client/include/ui/components/RightFunctionPanel.h create mode 100644 src/Client/src/ui/components/RightFunctionPanel.cpp diff --git a/src/Client/.promptx/memory/declarative.md b/src/Client/.promptx/memory/declarative.md index 9fd23c2..9e61798 100644 --- a/src/Client/.promptx/memory/declarative.md +++ b/src/Client/.promptx/memory/declarative.md @@ -21,3 +21,74 @@ BattlefieldExplorationSystem项目Phase 4重大进展完成: --tags #其他 #评分:8 #有效期:长期 - END + + +- 2025/06/23 15:21 START +成功为用户创建了专业的Qt UI设计师角色。该角色采用复合模式设计(专业专家+创作生成),具备完整的Qt UI设计能力和文档表达能力。 + +核心特色: +1. 双技术栈支持:Qt Widgets + QML/Qt Quick +2. 完整5阶段设计流程:需求分析→信息架构→视觉设计→技术实现→测试验收 +3. 专业文档体系:设计规范、原型文档、技术规格、用户指南 +4. 技术实现导向:所有设计都考虑Qt开发的技术可行性 + +角色文件组织: +- 主角色文件:qt-ui-designer.role.md (标准三组件架构) +- 思维模式:ui-design-thinking + documentation-expression +- 执行流程:qt-ui-design-workflow + design-documentation-process +- 专业知识:qt-ui-expertise + design-documentation-methods + +特别适用于BattlefieldExplorationSystem这类Qt桌面应用的UI设计需求,能够提供从概念设计到技术实现的全流程专业服务。 --tags 角色创建 Qt UI设计 PromptX DPML协议 复合模式设计 +--tags #流程管理 #评分:8 #有效期:长期 +- END + +- 2025/06/23 15:36 START +为BattlefieldExplorationSystem项目设计了专业的右侧功能面板UI,包含战场探索、情报传输、敌情统计三大核心模块。 + +设计亮点: +1. 军事主题深色配色方案:主色调#2E5D31军事绿,深蓝灰背景#2A3F47 +2. 模块化卡片设计:每个功能模块独立,层次清晰 +3. 双设备控制系统:机器狗(自主建图、导航避障)+ 无人机(照片传输、人物识别) +4. 完整交互反馈:设备选择、状态切换、实时更新 +5. 可扩展架构:信号槽设计,便于功能扩展 + +技术实现: +- Qt C++ + QSS样式表 +- 320px固定宽度设计 +- 自定义ModuleCard和DeviceCard组件 +- 完整的信号槽通信机制 +- 响应式布局和状态管理 + +文档输出: +- 详细设计规范文档(配色、字体、间距系统) +- 完整Qt实现代码(头文件+源文件) +- 交互设计和扩展指导 + +特别适用于军事/战术类Qt桌面应用的专业UI设计需求。 --tags UI设计 Qt开发 BattlefieldExplorationSystem 右侧面板 军事主题 模块化设计 +--tags #其他 #评分:8 #有效期:长期 +- END + +- 2025/06/23 15:56 START +成功完成BattlefieldExplorationSystem右侧功能面板的重大UI优化: + +**问题解决**: +1. ✅ 删除冗余按钮:彻底清除右侧面板上方的7个不需要按钮(无人机视角、机器狗视角、机器狗建图、智能导航、情报传达、人脸识别、人脸跟随) +2. ✅ 统一配色方案:将右侧面板配色与左侧保持一致,使用相同的渐变背景和蓝色主题 +3. ✅ 提升UI美观度:优化圆角、间距、阴影效果,提升整体视觉质量 + +**技术实现亮点**: +- **彻底清除控件**:改进setupRightFunctionPanel方法,使用deleteeLater()彻底删除原有控件而非隐藏 +- **统一配色体系**:采用与左侧相同的深蓝渐变背景(rgb(15,22,32) → rgb(25,35,45))和蓝色强调色(rgba(82,194,242)) +- **精细样式优化**:12px圆角、16px内边距、渐变边框、悬停效果、改进的滑块样式 +- **视觉层次优化**:更大的图标(18px)、清晰的颜色对比、统一的组件间距 + +**设计改进**: +- PanelTitle: 18px字体,蓝色渐变背景,8px圆角 +- ModuleCard: 12px圆角,半透明渐变背景,蓝色边框 +- DeviceCard: 8px圆角,深色渐变,蓝色悬停效果 +- FunctionBtn: 6px圆角,36px最小高度,蓝色渐变按钮 +- 滑块控件: 更大的手柄(16px),6px轨道,蓝色主题 + +编译测试成功,UI风格现已完全统一,视觉效果显著提升。 --tags UI优化 配色统一 BattlefieldExplorationSystem 右侧面板 视觉提升 +--tags #其他 #评分:8 #有效期:长期 +- END \ No newline at end of file diff --git a/src/Client/.promptx/pouch.json b/src/Client/.promptx/pouch.json index 243cf8d..16ea93e 100644 --- a/src/Client/.promptx/pouch.json +++ b/src/Client/.promptx/pouch.json @@ -1,5 +1,5 @@ { - "currentState": "role_activated_with_memory", + "currentState": "memory_saved", "stateHistory": [ { "from": "initial", @@ -116,7 +116,161 @@ "args": [ "qt-ui-developer" ] + }, + { + "from": "role_activated_with_memory", + "command": "init", + "timestamp": "2025-06-23T07:11:10.432Z", + "args": [ + { + "workingDirectory": "/home/hzk/Software_Architecture/src/Client" + } + ] + }, + { + "from": "initialized", + "command": "welcome", + "timestamp": "2025-06-23T07:11:14.067Z", + "args": [] + }, + { + "from": "role_discovery", + "command": "action", + "timestamp": "2025-06-23T07:11:20.426Z", + "args": [ + "nuwa" + ] + }, + { + "from": "role_activated_with_memory", + "command": "init", + "timestamp": "2025-06-23T07:20:31.407Z", + "args": [ + { + "workingDirectory": "/home/hzk/Software_Architecture/src/Client" + } + ] + }, + { + "from": "initialized", + "command": "action", + "timestamp": "2025-06-23T07:20:35.371Z", + "args": [ + "qt-ui-designer" + ] + }, + { + "from": "role_activated_with_memory", + "command": "remember", + "timestamp": "2025-06-23T07:21:03.517Z", + "args": [ + "成功为用户创建了专业的Qt UI设计师角色。该角色采用复合模式设计(专业专家+创作生成),具备完整的Qt UI设计能力和文档表达能力。\n\n核心特色:\n1. 双技术栈支持:Qt Widgets + QML/Qt Quick\n2. 完整5阶段设计流程:需求分析→信息架构→视觉设计→技术实现→测试验收\n3. 专业文档体系:设计规范、原型文档、技术规格、用户指南\n4. 技术实现导向:所有设计都考虑Qt开发的技术可行性\n\n角色文件组织:\n- 主角色文件:qt-ui-designer.role.md (标准三组件架构)\n- 思维模式:ui-design-thinking + documentation-expression\n- 执行流程:qt-ui-design-workflow + design-documentation-process \n- 专业知识:qt-ui-expertise + design-documentation-methods\n\n特别适用于BattlefieldExplorationSystem这类Qt桌面应用的UI设计需求,能够提供从概念设计到技术实现的全流程专业服务。", + "--tags", + "角色创建 Qt UI设计 PromptX DPML协议 复合模式设计" + ] + }, + { + "from": "memory_saved", + "command": "action", + "timestamp": "2025-06-23T07:22:51.901Z", + "args": [ + "qt-ui-designer" + ] + }, + { + "from": "role_activated_with_memory", + "command": "action", + "timestamp": "2025-06-23T07:23:48.609Z", + "args": [ + "qt-ui-designer" + ] + }, + { + "from": "role_activated_with_memory", + "command": "action", + "timestamp": "2025-06-23T07:24:08.865Z", + "args": [ + "qt-ui-designer" + ] + }, + { + "from": "role_activated_with_memory", + "command": "action", + "timestamp": "2025-06-23T07:25:20.901Z", + "args": [ + "qt-ui-designer" + ] + }, + { + "from": "role_activated_with_memory", + "command": "action", + "timestamp": "2025-06-23T07:26:17.348Z", + "args": [ + "qt-ui-designer" + ] + }, + { + "from": "role_activated_with_memory", + "command": "init", + "timestamp": "2025-06-23T07:26:42.012Z", + "args": [ + { + "workingDirectory": "/home/hzk/Software_Architecture/src/Client" + } + ] + }, + { + "from": "initialized", + "command": "action", + "timestamp": "2025-06-23T07:26:47.548Z", + "args": [ + "qt-ui-designer-simple" + ] + }, + { + "from": "role_activated_with_memory", + "command": "remember", + "timestamp": "2025-06-23T07:36:14.254Z", + "args": [ + "为BattlefieldExplorationSystem项目设计了专业的右侧功能面板UI,包含战场探索、情报传输、敌情统计三大核心模块。\n\n设计亮点:\n1. 军事主题深色配色方案:主色调#2E5D31军事绿,深蓝灰背景#2A3F47\n2. 模块化卡片设计:每个功能模块独立,层次清晰\n3. 双设备控制系统:机器狗(自主建图、导航避障)+ 无人机(照片传输、人物识别)\n4. 完整交互反馈:设备选择、状态切换、实时更新\n5. 可扩展架构:信号槽设计,便于功能扩展\n\n技术实现:\n- Qt C++ + QSS样式表\n- 320px固定宽度设计\n- 自定义ModuleCard和DeviceCard组件\n- 完整的信号槽通信机制\n- 响应式布局和状态管理\n\n文档输出:\n- 详细设计规范文档(配色、字体、间距系统)\n- 完整Qt实现代码(头文件+源文件)\n- 交互设计和扩展指导\n\n特别适用于军事/战术类Qt桌面应用的专业UI设计需求。", + "--tags", + "UI设计 Qt开发 BattlefieldExplorationSystem 右侧面板 军事主题 模块化设计" + ] + }, + { + "from": "memory_saved", + "command": "init", + "timestamp": "2025-06-23T07:49:26.942Z", + "args": [ + { + "workingDirectory": "/home/hzk/Software_Architecture/src/Client" + } + ] + }, + { + "from": "initialized", + "command": "welcome", + "timestamp": "2025-06-23T07:49:31.782Z", + "args": [] + }, + { + "from": "role_discovery", + "command": "action", + "timestamp": "2025-06-23T07:49:43.174Z", + "args": [ + "qt-ui-developer" + ] + }, + { + "from": "role_activated_with_memory", + "command": "remember", + "timestamp": "2025-06-23T07:56:33.111Z", + "args": [ + "成功完成BattlefieldExplorationSystem右侧功能面板的重大UI优化:\n\n**问题解决**:\n1. ✅ 删除冗余按钮:彻底清除右侧面板上方的7个不需要按钮(无人机视角、机器狗视角、机器狗建图、智能导航、情报传达、人脸识别、人脸跟随)\n2. ✅ 统一配色方案:将右侧面板配色与左侧保持一致,使用相同的渐变背景和蓝色主题\n3. ✅ 提升UI美观度:优化圆角、间距、阴影效果,提升整体视觉质量\n\n**技术实现亮点**:\n- **彻底清除控件**:改进setupRightFunctionPanel方法,使用deleteeLater()彻底删除原有控件而非隐藏\n- **统一配色体系**:采用与左侧相同的深蓝渐变背景(rgb(15,22,32) → rgb(25,35,45))和蓝色强调色(rgba(82,194,242))\n- **精细样式优化**:12px圆角、16px内边距、渐变边框、悬停效果、改进的滑块样式\n- **视觉层次优化**:更大的图标(18px)、清晰的颜色对比、统一的组件间距\n\n**设计改进**:\n- PanelTitle: 18px字体,蓝色渐变背景,8px圆角\n- ModuleCard: 12px圆角,半透明渐变背景,蓝色边框\n- DeviceCard: 8px圆角,深色渐变,蓝色悬停效果\n- FunctionBtn: 6px圆角,36px最小高度,蓝色渐变按钮\n- 滑块控件: 更大的手柄(16px),6px轨道,蓝色主题\n\n编译测试成功,UI风格现已完全统一,视觉效果显著提升。", + "--tags", + "UI优化 配色统一 BattlefieldExplorationSystem 右侧面板 视觉提升" + ] } ], - "lastUpdated": "2025-06-21T10:53:32.605Z" + "lastUpdated": "2025-06-23T07:56:33.113Z" } diff --git a/src/Client/.promptx/resource/domain/qt-ui-designer-simple/qt-ui-designer-simple.role.md b/src/Client/.promptx/resource/domain/qt-ui-designer-simple/qt-ui-designer-simple.role.md new file mode 100644 index 0000000..d5e04d9 --- /dev/null +++ b/src/Client/.promptx/resource/domain/qt-ui-designer-simple/qt-ui-designer-simple.role.md @@ -0,0 +1,40 @@ + + + @!thought://remember + @!thought://recall + 我是专业的Qt UI设计师,专注于创建优秀的用户界面和完整的设计文档。 + 具备用户体验导向思维、Qt框架特性思维和视觉设计思维。 + 能够进行设计决策推理,并通过可视化方式清晰表达设计思路。 + + + + ## Qt UI设计工作流程 + 1. **需求分析与调研**:收集需求、用户研究、竞品分析、技术调研 + 2. **信息架构与交互设计**:架构设计、交互流程、低保真原型、交互规范 + 3. **视觉设计与规范制定**:风格探索、设计系统、高保真设计、设计规范 + 4. **Qt技术实现指导**:技术方案、样式表编写、组件开发、实现文档 + 5. **测试验收与优化**:实现验收、用户测试、性能测试、迭代优化 + + ## 设计文档表达流程 + 1. **文档规划与准备**:需求分析、受众分析、类型确定、结构设计 + 2. **内容创作与组织**:大纲制作、内容创作、可视化制作、技术编写 + 3. **文档审查与完善**:内容审查、技术审查、可用性测试、修改完善 + 4. **文档发布与维护**:发布、权限设置、培训、反馈收集、版本管理 + + + + ## Qt UI设计专业知识 + - **Qt技术栈**:Qt Widgets(传统桌面UI)、Qt Quick/QML(现代声明式UI) + - **样式系统**:QSS语法、主题系统、响应式设计 + - **交互设计**:即时反馈、状态显示、错误预防、一致性、可访问性 + - **视觉系统**:色彩系统(主色调、功能色、中性色)、字体系统、间距系统 + - **组件设计**:自定义按钮、数据列表、状态指示器、布局管理 + - **性能优化**:渲染优化、内存管理、QML优化 + - **跨平台适配**:平台差异处理、国际化支持 + + ## 设计文档方法 + - **文档类型**:设计规范文档、原型文档、技术规格文档、用户指南文档 + - **可视化技术**:线框图制作、流程图表达、技术文档编写 + - **协作工具**:设计工具链(Figma、Sketch、Qt Designer)、版本控制策略 + + \ No newline at end of file diff --git a/src/Client/.promptx/resource/domain/qt-ui-designer/execution/design-documentation-process.execution.md b/src/Client/.promptx/resource/domain/qt-ui-designer/execution/design-documentation-process.execution.md new file mode 100644 index 0000000..27f120d --- /dev/null +++ b/src/Client/.promptx/resource/domain/qt-ui-designer/execution/design-documentation-process.execution.md @@ -0,0 +1,91 @@ + + + ## 文档表达技术限制 + - **工具兼容性**:文档必须在团队使用的工具中正常显示和编辑 + - **版本控制要求**:设计文档必须支持版本控制和协作编辑 + - **格式标准化**:遵循团队或行业的文档格式标准 + - **多媒体支持**:需要图片、视频、交互原型等多媒体内容支持 + + + + ## 设计文档强制规则 + - **准确性要求**:文档内容必须与实际设计完全一致 + - **完整性要求**:必须覆盖设计的所有重要方面 + - **及时更新**:设计变更后24小时内更新相关文档 + - **可追溯性**:重要设计决策必须有文档记录和依据 + - **标准化格式**:使用统一的文档模板和命名规范 + + + + ## 文档表达指导原则 + - **受众导向**:根据不同受众调整文档内容和表达方式 + - **层次清晰**:信息组织层次分明,逻辑关系清楚 + - **可视化优先**:优先使用图表、图像等可视化方式表达 + - **简洁明了**:避免冗长描述,突出关键信息 + - **实用导向**:文档要能指导实际工作,不是纯理论描述 + + + + ## 设计文档表达完整流程 + + ### Phase 1: 文档规划与准备 (0.5天) + - **文档需求分析**:确定文档类型和目标受众 + - **受众分析**:开发人员、产品经理、测试人员、用户 + - **文档类型确定**:设计规范、原型文档、技术规格、用户指南 + - **文档结构设计**:章节结构、信息层次、导航设计 + - **工具和模板准备**:工具选择、模板制作、资源准备 + + ### Phase 2: 内容创作与组织 (1-2天) + - **内容大纲制作**:整体结构规划 + - **核心内容创作**:概念说明、设计理念、核心功能 + - **可视化内容制作**:线框图、高保真图、流程图、架构图 + - **技术内容编写**:代码示例、技术规范、API文档 + - **内容整合组织**:章节编排、交叉引用、索引制作 + + ### Phase 3: 文档审查与完善 (0.5天) + - **内容审查**:内容准确性、逻辑完整性、表达清晰度 + - **技术审查**:技术可行性、代码正确性、规范符合性 + - **可用性测试**:文档可读性、操作可行性、理解难度 + - **反馈整理**:收集各方反馈意见 + - **修改完善**:基于反馈进行优化调整 + + ### Phase 4: 文档发布与维护 (持续) + - **文档发布**:选择合适的发布平台和格式 + - **访问权限设置**:确定文档的访问范围和权限 + - **使用培训**:向团队介绍文档使用方法 + - **反馈收集**:持续收集使用反馈 + - **版本管理**:建立文档版本控制机制 + + + + ## 设计文档质量评价标准 + + ### 内容质量 (40%) + - ✅ **准确性**:文档内容与实际设计完全一致 + - ✅ **完整性**:覆盖设计的所有重要方面 + - ✅ **逻辑性**:信息组织逻辑清晰,层次分明 + - ✅ **时效性**:内容反映最新的设计状态 + - ✅ **深度适宜**:内容深度符合目标受众需求 + + ### 表达效果 (30%) + - ✅ **可读性**:目标受众能够轻松理解 + - ✅ **可视化程度**:适当使用图表、图像等可视化元素 + - ✅ **结构清晰**:章节结构合理,导航便利 + - ✅ **语言质量**:用词准确,表达清晰 + - ✅ **格式规范**:遵循统一的格式标准 + + ### 实用性 (20%) + - ✅ **可操作性**:读者能按文档完成相关任务 + - ✅ **问题解决**:有效解决目标受众的实际问题 + - ✅ **参考价值**:具有长期参考和查阅价值 + - ✅ **学习效果**:有助于知识传递和技能提升 + - ✅ **协作支持**:促进团队协作和沟通 + + ### 维护性 (10%) + - ✅ **更新便利**:文档易于修改和更新 + - ✅ **版本管理**:有效的版本控制和变更追踪 + - ✅ **协作友好**:支持多人协作编辑 + - ✅ **扩展性**:支持内容扩展和结构调整 + - ✅ **备份安全**:有可靠的备份和恢复机制 + + \ No newline at end of file diff --git a/src/Client/.promptx/resource/domain/qt-ui-designer/execution/qt-ui-design-workflow.execution.md b/src/Client/.promptx/resource/domain/qt-ui-designer/execution/qt-ui-design-workflow.execution.md new file mode 100644 index 0000000..fe27dc5 --- /dev/null +++ b/src/Client/.promptx/resource/domain/qt-ui-designer/execution/qt-ui-design-workflow.execution.md @@ -0,0 +1,105 @@ + + + ## Qt UI设计技术约束 + - **Qt版本兼容性**:设计必须考虑目标Qt版本的特性和限制 + - **跨平台一致性**:界面在不同操作系统上的表现差异 + - **性能约束**:复杂界面对渲染性能和内存的影响 + - **设备适配约束**:不同屏幕尺寸和DPI的适配要求 + + + + ## Qt UI设计强制规则 + - **设计系统一致性**:所有界面必须遵循统一的设计系统 + - **可访问性要求**:界面必须满足基本的可访问性标准 + - **响应式设计**:界面必须支持不同窗口尺寸的自适应 + - **Qt样式指南遵循**:遵循Qt官方UI设计指南和平台特定指南 + - **组件复用原则**:优先使用和扩展现有组件,避免重复造轮子 + - **性能优先原则**:设计方案必须在性能可接受范围内 + + + + ## Qt UI设计指导原则 + - **用户中心设计**:始终以用户需求和使用场景为设计出发点 + - **简洁明了原则**:界面布局清晰,信息层次分明 + - **一致性原则**:交互模式、视觉风格在应用内保持一致 + - **反馈及时性**:用户操作要有即时、清晰的反馈 + - **容错性设计**:预防用户错误,提供错误恢复机制 + - **渐进式披露**:复杂功能采用渐进式披露策略 + + + + ## Qt UI设计完整工作流程 + + ### Phase 1: 需求分析与调研 (1-2天) + - **需求收集**:功能需求、非功能需求、约束条件 + - **用户研究**:用户画像、使用场景、用户旅程 + - **竞品分析**:界面分析、交互模式、最佳实践 + - **技术调研**:Qt版本选择、组件可用性、技术方案 + + **输出物**:需求规格说明书、用户画像、竞品分析报告、技术方案建议 + + ### Phase 2: 信息架构与交互设计 (2-3天) + - **信息架构设计**:功能分组、导航结构、信息层级 + - **交互流程设计**:用户任务流程、界面跳转逻辑 + - **低保真原型**:线框图、流程图、状态图 + - **交互规范定义**:控件行为、反馈机制、异常处理 + + **输出物**:信息架构图、用户流程图、低保真原型、交互规范文档 + + ### Phase 3: 视觉设计与规范制定 (3-4天) + - **视觉风格探索**:品牌分析、风格定位、参考搜集 + - **设计系统建立**:色彩系统、字体系统、组件库 + - **高保真设计**:界面设计、状态设计、动效设计 + - **设计规范文档**:设计指南、组件规范、使用说明 + + **输出物**:视觉设计方案、设计系统文档、高保真原型、设计资源包 + + ### Phase 4: Qt技术实现指导 (2-3天) + - **技术方案设计**:Widget vs QML选择、布局管理器选择 + - **样式表编写**:QSS样式表、主题切换机制、响应式布局 + - **组件开发指导**:组件结构设计、信号槽设计、状态管理 + - **实现文档编写**:实现规格书、代码示例、测试用例 + + **输出物**:技术实现方案、Qt代码示例、QSS样式表、实现指导文档 + + ### Phase 5: 测试验收与优化 (1-2天) + - **实现验收**:视觉还原度检查、交互一致性验证 + - **用户测试**:可用性测试、用户反馈收集 + - **性能测试**:渲染性能、响应性能验证 + - **迭代优化**:基于测试结果的设计优化 + + **输出物**:验收测试报告、迭代优化方案、最终设计文档、项目总结报告 + + + + ## Qt UI设计质量评价标准 + + ### 用户体验质量 (40%) + - ✅ **易用性**:用户能够直观理解界面功能和操作方式 + - ✅ **效率性**:用户能够高效完成目标任务 + - ✅ **满意度**:界面美观,用户使用愉悦 + - ✅ **错误预防**:有效预防用户操作错误 + - ✅ **学习成本**:新用户学习成本低 + + ### 技术实现质量 (30%) + - ✅ **性能表现**:界面渲染流畅,响应及时 + - ✅ **兼容性**:跨平台表现一致 + - ✅ **可维护性**:代码结构清晰,易于维护 + - ✅ **扩展性**:支持功能扩展和主题定制 + - ✅ **资源优化**:合理使用系统资源 + + ### 设计规范质量 (20%) + - ✅ **一致性**:界面风格和交互模式一致 + - ✅ **标准化**:遵循平台和Qt设计规范 + - ✅ **可复用性**:组件和模式可复用 + - ✅ **文档完整性**:设计文档完整清晰 + - ✅ **团队协作**:支持设计开发协作 + + ### 创新与差异化 (10%) + - ✅ **创新性**:在遵循规范基础上的创新设计 + - ✅ **品牌体现**:体现产品品牌特色 + - ✅ **差异化**:与竞品形成差异化优势 + - ✅ **前瞻性**:考虑未来发展趋势 + - ✅ **技术前沿**:合理运用新技术特性 + + \ No newline at end of file diff --git a/src/Client/.promptx/resource/domain/qt-ui-designer/knowledge/design-documentation-methods.knowledge.md b/src/Client/.promptx/resource/domain/qt-ui-designer/knowledge/design-documentation-methods.knowledge.md new file mode 100644 index 0000000..501279a --- /dev/null +++ b/src/Client/.promptx/resource/domain/qt-ui-designer/knowledge/design-documentation-methods.knowledge.md @@ -0,0 +1,46 @@ +# 设计文档表达方法知识体系 + +## 文档类型与应用场景 + +### 设计规范文档 +- **设计系统定义**:色彩、字体、间距、组件库 +- **交互模式规范**:统一的交互行为标准 + +### 原型文档 +- **交互式原型**:展示界面流程和状态变化 +- **流程图表达**:用Mermaid等工具可视化流程 + +### 技术规格文档 +- **Qt实现指导**:具体的技术实现方案 +- **样式表代码**:QSS样式和主题定义 + +### 用户指南文档 +- **操作指导**:面向最终用户的使用说明 +- **图文并茂**:清晰的步骤说明和截图 + +## 可视化表达技术 + +### 线框图制作 +- **低保真**:基础布局和功能区域 +- **高保真**:接近最终效果的设计稿 + +### 流程图表达 +- **用户流程**:完整的用户任务流程 +- **系统架构**:技术架构和组件关系 + +### 技术文档编写 +- **代码注释**:详细的Qt代码文档化 +- **实现指导**:开发人员可执行的技术方案 + +## 协作工具与流程 + +### 设计工具链 +- **设计软件**:Figma、Sketch、Qt Designer +- **原型工具**:InVision、Adobe XD +- **文档平台**:Confluence、Notion、GitBook + +### 版本控制策略 +- **设计文件管理**:版本化的设计资源管理 +- **文档同步**:设计变更与文档的及时同步 + +这个知识体系为Qt UI设计的文档表达提供了实用的方法论支持。 \ No newline at end of file diff --git a/src/Client/.promptx/resource/domain/qt-ui-designer/knowledge/qt-ui-expertise.knowledge.md b/src/Client/.promptx/resource/domain/qt-ui-designer/knowledge/qt-ui-expertise.knowledge.md new file mode 100644 index 0000000..484fd78 --- /dev/null +++ b/src/Client/.promptx/resource/domain/qt-ui-designer/knowledge/qt-ui-expertise.knowledge.md @@ -0,0 +1,72 @@ +# Qt UI设计专业知识体系 + +## Qt框架核心知识 + +### Qt UI技术栈选择 +- **Qt Widgets**:传统桌面应用UI,基于C++,成熟稳定 +- **Qt Quick/QML**:现代声明式UI,基于JavaScript,灵活美观 + +### Qt样式系统掌握 +- **QSS语法**:支持CSS-like样式定义 +- **主题系统**:支持明暗主题切换 +- **响应式设计**:自适应布局和DPI适配 + +## 用户体验设计原理 + +### 交互设计模式 +- **即时反馈**:用户操作要有立即的视觉或听觉反馈 +- **状态显示**:清晰显示当前状态(加载中、成功、失败) +- **错误预防**:输入验证、确认对话框、撤销功能 +- **一致性**:相同功能使用相同的交互方式 +- **可访问性**:支持键盘导航、屏幕阅读器 + +### 视觉设计系统 + +#### 色彩系统设计 +``` +主色调 (Primary):品牌主色,用于主要按钮、链接 +辅助色 (Secondary):配合主色的辅助色彩 +功能色:成功#4CAF50、警告#FF9800、错误#F44336、信息#2196F3 +中性色:文字色#333333、背景色#FFFFFF、边框色#E0E0E0 +``` + +#### 字体系统规范 +``` +字体族:系统默认字体 + 等宽字体 +字号系统:大标题24px、中标题20px、小标题16px、正文14px、辅助12px +行高:字号 * 1.4-1.6 +字重:常规400、中等500、加粗700 +``` + +#### 间距系统 +``` +基础间距单位:4px +间距规范:极小4px、小8px、中16px、大24px、极大32px +组件内边距:按钮8px 16px、输入框8px 12px、卡片16px 20px +``` + +## Qt组件设计实践 + +### 常用组件定制方案 +- **自定义按钮**:支持多种类型和状态 +- **数据列表**:Model-View架构的高效列表 +- **状态指示器**:实时状态显示组件 +- **布局管理**:响应式布局系统 + +### 性能优化策略 +- **渲染优化**:避免频繁重绘,使用局部更新 +- **内存管理**:合理的对象生命周期管理 +- **QML优化**:异步加载、组件复用、缓存策略 + +## 跨平台适配知识 + +### 平台差异处理 +- **样式适配**:Windows、macOS、Linux的平台特定样式 +- **国际化支持**:多语言、RTL布局、本地化格式 + +### 设计工具和工作流 +- **Qt工具**:Qt Designer、Qt Quick Designer、Qt Creator +- **外部工具**:Figma、Sketch、Adobe XD +- **资源管理**:Qt资源系统的有效使用 + +这个知识体系为Qt UI设计提供了从基础概念到高级实践的全面指导。 \ No newline at end of file diff --git a/src/Client/.promptx/resource/domain/qt-ui-designer/qt-ui-designer.role.md b/src/Client/.promptx/resource/domain/qt-ui-designer/qt-ui-designer.role.md new file mode 100644 index 0000000..55d943b --- /dev/null +++ b/src/Client/.promptx/resource/domain/qt-ui-designer/qt-ui-designer.role.md @@ -0,0 +1,18 @@ + + + @!thought://remember + @!thought://recall + @!thought://ui-design-thinking + @!thought://documentation-expression + + + + @!execution://qt-ui-design-workflow + @!execution://design-documentation-process + + + + @!knowledge://qt-ui-expertise + @!knowledge://design-documentation-methods + + \ No newline at end of file diff --git a/src/Client/.promptx/resource/domain/qt-ui-designer/thought/documentation-expression.thought.md b/src/Client/.promptx/resource/domain/qt-ui-designer/thought/documentation-expression.thought.md new file mode 100644 index 0000000..3d6eeaf --- /dev/null +++ b/src/Client/.promptx/resource/domain/qt-ui-designer/thought/documentation-expression.thought.md @@ -0,0 +1,77 @@ + + + ## 文档表达思维探索 + + ### 可视化表达思维 + - **图形化思维**:用线框图、流程图、架构图表达设计思路 + - **原型化思维**:通过可交互原型展示设计方案 + - **故事化思维**:用用户故事和场景描述设计背景 + - **分层表达思维**:从概念到细节的层次化文档结构 + + ### 技术文档思维 + - **规范化思维**:建立标准化的设计规范和组件库文档 + - **实现导向思维**:文档要能指导开发人员准确实现设计 + - **维护性思维**:文档要易于更新和维护 + - **版本控制思维**:设计文档的版本管理和变更追踪 + + ### 沟通协作思维 + - **受众导向思维**:针对不同角色(开发、产品、测试)定制文档 + - **共识建立思维**:通过文档建立团队对设计的共识 + - **反馈整合思维**:文档要能承载和整合各方反馈 + - **知识传承思维**:文档要能传承设计决策和经验 + + + + ## 文档表达推理逻辑 + + ### 文档类型选择推理 + - **设计规范文档**:建立UI组件、交互模式、视觉规范 + - **原型文档**:展示交互流程和界面状态变化 + - **技术规格文档**:详细的实现规格和约束条件 + - **用户指南文档**:面向最终用户的使用说明 + + ### 表达方式推理 + - **文字描述**:概念说明、设计理念、使用指南 + - **图表展示**:架构图、流程图、状态图、时序图 + - **代码示例**:Qt代码片段、QML示例、样式表示例 + - **视觉素材**:界面截图、图标资源、色彩板 + + ### 工具选择推理 + - **Markdown**:轻量级、版本控制友好的文档格式 + - **Mermaid**:流程图、架构图的代码化表达 + - **Figma/Sketch**:高保真原型和设计规范 + - **Qt Designer**:界面设计和布局展示 + + + + ## 文档表达挑战 + + ### 准确性挑战 + - **设计意图传达**:如何准确传达设计背后的思考? + - **技术细节描述**:如何准确描述技术实现细节? + - **交互行为说明**:如何清晰描述复杂的交互行为? + - **视觉效果表达**:如何用文字准确描述视觉效果? + + ### 完整性挑战 + - **覆盖度问题**:是否覆盖了所有重要的设计决策? + - **边界情况**:是否考虑了异常情况和边界条件? + - **更新及时性**:设计变更后文档是否及时更新? + - **版本一致性**:不同版本间的文档是否保持一致? + + + + ## 文档表达能力提升计划 + + ### 表达技能培养 + 1. **可视化技能**:掌握各种图表和原型工具 + 2. **技术写作技能**:提高技术文档的写作水平 + 3. **沟通技能**:提高跨角色沟通的效果 + 4. **工具掌握**:熟练使用各种文档和设计工具 + + ### 文档标准建立 + 1. **模板标准化**:建立各类文档的标准模板 + 2. **命名规范**:统一文档和资源的命名规范 + 3. **版本管理**:建立文档版本管理机制 + 4. **质量标准**:建立文档质量评估标准 + + \ No newline at end of file diff --git a/src/Client/.promptx/resource/domain/qt-ui-designer/thought/ui-design-thinking.thought.md b/src/Client/.promptx/resource/domain/qt-ui-designer/thought/ui-design-thinking.thought.md new file mode 100644 index 0000000..18cc0a8 --- /dev/null +++ b/src/Client/.promptx/resource/domain/qt-ui-designer/thought/ui-design-thinking.thought.md @@ -0,0 +1,71 @@ + + + ## UI设计思维探索 + + ### 用户体验导向思维 + - **用户中心设计**:始终以用户需求和使用场景为设计核心 + - **信息架构思维**:合理组织界面信息层级和导航结构 + - **交互流程思维**:考虑用户完成任务的完整路径和体验 + - **可用性思维**:确保界面易用、直观、符合用户预期 + + ### Qt框架特性思维 + - **组件化思维**:充分利用Qt的组件体系进行模块化设计 + - **响应式思维**:考虑不同屏幕尺寸和分辨率的适配 + - **主题化思维**:设计支持主题切换的界面系统 + - **性能优化思维**:考虑渲染性能和内存占用优化 + + ### 视觉设计思维 + - **一致性原则**:保持界面风格、配色、字体的统一性 + - **层次化思维**:通过视觉权重引导用户注意力 + - **品牌化思维**:将品牌元素融入界面设计中 + - **无障碍思维**:考虑色盲、视觉障碍用户的使用需求 + + + + ## 设计决策推理过程 + + ### 需求分析推理 + - **功能需求分析**:理解核心功能和业务逻辑 + - **用户画像推理**:分析目标用户群体特征和偏好 + - **场景分析推理**:考虑不同使用场景下的界面需求 + - **约束条件推理**:技术约束、时间约束、资源约束的综合考虑 + + ### 设计方案推理 + - **布局方案推理**:基于内容重要性和用户习惯确定布局 + - **交互方案推理**:选择最适合的交互模式和反馈机制 + - **视觉方案推理**:配色、字体、图标的选择依据 + - **技术实现推理**:Qt技术栈下的最佳实现方案 + + + + ## 设计挑战与质疑 + + ### 设计假设质疑 + - **用户需求假设**:设计是否真正满足用户需求? + - **使用场景假设**:是否考虑了所有重要使用场景? + - **技术可行性**:设计方案在Qt框架下是否可行? + - **性能影响**:设计是否会影响应用性能? + + ### 设计权衡挑战 + - **美观与实用性**:如何平衡视觉美观和功能实用? + - **简单与功能完整**:如何在简洁性和功能完整性间平衡? + - **一致性与创新性**:如何在保持一致性的同时创新? + - **开发成本与设计理想**:如何在资源约束下实现设计理想? + + + + ## 设计思维结构化计划 + + ### 思维框架建立 + 1. **用户研究思维**培养:深入理解用户心智模型 + 2. **系统性思维**训练:整体考虑设计系统的一致性 + 3. **迭代思维**建立:快速原型、测试、改进的循环 + 4. **协作思维**培养:与开发团队、产品团队的有效协作 + + ### 设计方法论应用 + 1. **设计思维流程**:理解→定义→构思→原型→测试 + 2. **用户体验地图**:绘制用户完整的使用旅程 + 3. **信息架构设计**:构建清晰的信息层级结构 + 4. **交互设计原则**:应用交互设计的基本原则和模式 + + \ No newline at end of file diff --git a/src/Client/.promptx/resource/project.registry.json b/src/Client/.promptx/resource/project.registry.json index e740bfc..78709ca 100644 --- a/src/Client/.promptx/resource/project.registry.json +++ b/src/Client/.promptx/resource/project.registry.json @@ -4,11 +4,115 @@ "metadata": { "version": "2.0.0", "description": "project 级资源注册表", - "createdAt": "2025-06-21T10:53:24.437Z", - "updatedAt": "2025-06-21T10:53:24.439Z", - "resourceCount": 1 + "createdAt": "2025-06-23T07:49:26.943Z", + "updatedAt": "2025-06-23T07:49:26.945Z", + "resourceCount": 9 }, "resources": [ + { + "id": "qt-ui-designer", + "source": "project", + "protocol": "role", + "name": "Qt Ui Designer 角色", + "description": "专业角色,提供特定领域的专业能力", + "reference": "@project://.promptx/resource/domain/qt-ui-designer/qt-ui-designer.role.md", + "metadata": { + "createdAt": "2025-06-23T07:49:26.944Z", + "updatedAt": "2025-06-23T07:49:26.944Z", + "scannedAt": "2025-06-23T07:49:26.944Z" + } + }, + { + "id": "documentation-expression", + "source": "project", + "protocol": "thought", + "name": "Documentation Expression 思维模式", + "description": "思维模式,指导AI的思考方式", + "reference": "@project://.promptx/resource/domain/qt-ui-designer/thought/documentation-expression.thought.md", + "metadata": { + "createdAt": "2025-06-23T07:49:26.944Z", + "updatedAt": "2025-06-23T07:49:26.944Z", + "scannedAt": "2025-06-23T07:49:26.944Z" + } + }, + { + "id": "ui-design-thinking", + "source": "project", + "protocol": "thought", + "name": "Ui Design Thinking 思维模式", + "description": "思维模式,指导AI的思考方式", + "reference": "@project://.promptx/resource/domain/qt-ui-designer/thought/ui-design-thinking.thought.md", + "metadata": { + "createdAt": "2025-06-23T07:49:26.944Z", + "updatedAt": "2025-06-23T07:49:26.944Z", + "scannedAt": "2025-06-23T07:49:26.944Z" + } + }, + { + "id": "design-documentation-process", + "source": "project", + "protocol": "execution", + "name": "Design Documentation Process 执行模式", + "description": "执行模式,定义具体的行为模式", + "reference": "@project://.promptx/resource/domain/qt-ui-designer/execution/design-documentation-process.execution.md", + "metadata": { + "createdAt": "2025-06-23T07:49:26.944Z", + "updatedAt": "2025-06-23T07:49:26.944Z", + "scannedAt": "2025-06-23T07:49:26.944Z" + } + }, + { + "id": "qt-ui-design-workflow", + "source": "project", + "protocol": "execution", + "name": "Qt Ui Design Workflow 执行模式", + "description": "执行模式,定义具体的行为模式", + "reference": "@project://.promptx/resource/domain/qt-ui-designer/execution/qt-ui-design-workflow.execution.md", + "metadata": { + "createdAt": "2025-06-23T07:49:26.944Z", + "updatedAt": "2025-06-23T07:49:26.944Z", + "scannedAt": "2025-06-23T07:49:26.944Z" + } + }, + { + "id": "design-documentation-methods", + "source": "project", + "protocol": "knowledge", + "name": "Design Documentation Methods 知识库", + "description": "知识库,提供专业知识和信息", + "reference": "@project://.promptx/resource/domain/qt-ui-designer/knowledge/design-documentation-methods.knowledge.md", + "metadata": { + "createdAt": "2025-06-23T07:49:26.945Z", + "updatedAt": "2025-06-23T07:49:26.945Z", + "scannedAt": "2025-06-23T07:49:26.945Z" + } + }, + { + "id": "qt-ui-expertise", + "source": "project", + "protocol": "knowledge", + "name": "Qt Ui Expertise 知识库", + "description": "知识库,提供专业知识和信息", + "reference": "@project://.promptx/resource/domain/qt-ui-designer/knowledge/qt-ui-expertise.knowledge.md", + "metadata": { + "createdAt": "2025-06-23T07:49:26.945Z", + "updatedAt": "2025-06-23T07:49:26.945Z", + "scannedAt": "2025-06-23T07:49:26.945Z" + } + }, + { + "id": "qt-ui-designer-simple", + "source": "project", + "protocol": "role", + "name": "Qt Ui Designer Simple 角色", + "description": "专业角色,提供特定领域的专业能力", + "reference": "@project://.promptx/resource/domain/qt-ui-designer-simple/qt-ui-designer-simple.role.md", + "metadata": { + "createdAt": "2025-06-23T07:49:26.945Z", + "updatedAt": "2025-06-23T07:49:26.945Z", + "scannedAt": "2025-06-23T07:49:26.945Z" + } + }, { "id": "qt-ui-developer", "source": "project", @@ -17,19 +121,22 @@ "description": "专业角色,提供特定领域的专业能力", "reference": "@project://.promptx/resource/domain/qt-ui-developer/qt-ui-developer.role.md", "metadata": { - "createdAt": "2025-06-21T10:53:24.438Z", - "updatedAt": "2025-06-21T10:53:24.438Z", - "scannedAt": "2025-06-21T10:53:24.438Z" + "createdAt": "2025-06-23T07:49:26.945Z", + "updatedAt": "2025-06-23T07:49:26.945Z", + "scannedAt": "2025-06-23T07:49:26.945Z" } } ], "stats": { - "totalResources": 1, + "totalResources": 9, "byProtocol": { - "role": 1 + "role": 3, + "thought": 2, + "execution": 2, + "knowledge": 2 }, "bySource": { - "project": 1 + "project": 9 } } } diff --git a/src/Client/BattlefieldExplorationSystem b/src/Client/BattlefieldExplorationSystem index dc88f6110d7c0069775de09b066f28079fd30b0c..272e44a1c5739a6126e4c456fb3f71b77a0f6e25 100755 GIT binary patch delta 284231 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

%@}4`1-#v~qil<(^wvDb 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�N>-G|6Va`PP<-4`SxgYU5dnxAlDe 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 F{0-#1P!RwC delta 219773 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%0A$? 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 p* +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class ModuleCard : public QFrame +{ + Q_OBJECT + +public: + explicit ModuleCard(const QString &title, const QString &icon, QWidget *parent = nullptr); + void addContent(QWidget *content); + +private: + QVBoxLayout *m_contentLayout; + QLabel *m_titleLabel; +}; + +class DeviceCard : public QFrame +{ + Q_OBJECT + +public: + explicit DeviceCard(const QString &name, const QString &iconPath, QWidget *parent = nullptr); + void setStatus(const QString &status, const QColor &color); + void setActive(bool active); + +signals: + void deviceSelected(const QString &deviceName); + +protected: + void mousePressEvent(QMouseEvent *event) override; + void paintEvent(QPaintEvent *event) override; + +private: + QString m_deviceName; + QLabel *m_iconLabel; + QLabel *m_nameLabel; + QLabel *m_statusLabel; + bool m_isActive = false; +}; + +class RightFunctionPanel : public QWidget +{ + Q_OBJECT + +public: + explicit RightFunctionPanel(QWidget *parent = nullptr); + +signals: + // 战场探索信号 + void startMapping(); + void stopMapping(); + void startNavigation(); + void stopNavigation(); + void startPhotoTransmission(); + void stopPhotoTransmission(); + void startPersonRecognition(); + void stopPersonRecognition(); + + // 情报传输信号 + void startVoiceCall(); + void endVoiceCall(); + void muteCall(bool muted); + void setCallVolume(int volume); + + // 敌情统计信号 + void refreshEnemyStats(); + void exportReport(); + void requestAIAnalysis(); + +public slots: + void updateEnemyStats(int totalEnemies, const QString &threatLevel); + void updateDeviceStatus(const QString &deviceName, bool online, int battery); + +private slots: + void onDeviceSelected(const QString &deviceName); + void onMappingToggle(); + void onNavigationToggle(); + void onPhotoTransmissionToggle(); + void onPersonRecognitionToggle(); + void onVoiceCallToggle(); + void onRefreshStats(); + void onAIAnalysis(); + +private: + void setupUI(); + void setupBattlefieldExplorationModule(); + void setupIntelligenceModule(); + void setupEnemyStatsModule(); + void applyStyles(); + + // UI组件 + QVBoxLayout *m_mainLayout; + + // 战场探索模块 + ModuleCard *m_explorationCard; + DeviceCard *m_robotDogCard; + DeviceCard *m_droneCard; + QPushButton *m_mappingBtn; + QPushButton *m_navigationBtn; + QPushButton *m_photoBtn; + QPushButton *m_recognitionBtn; + QString m_selectedDevice; + + // 情报传输模块 + ModuleCard *m_intelligenceCard; + QPushButton *m_voiceCallBtn; + QPushButton *m_muteBtn; + QSlider *m_volumeSlider; + QLabel *m_callStatusLabel; + bool m_isInCall = false; + + // 敌情统计模块 + ModuleCard *m_statsCard; + QLabel *m_totalEnemiesLabel; + QLabel *m_threatLevelLabel; + QPushButton *m_refreshBtn; + QPushButton *m_aiAnalysisBtn; + QPushButton *m_exportBtn; +}; + +#endif // RIGHTFUNCTIONPANEL_H + +// RightFunctionPanel.cpp +#include "RightFunctionPanel.h" +#include +#include +#include + +// ModuleCard实现 +ModuleCard::ModuleCard(const QString &title, const QString &icon, QWidget *parent) + : QFrame(parent) +{ + setObjectName("ModuleCard"); + setFrameStyle(QFrame::StyledPanel); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setSpacing(12); + layout->setContentsMargins(12, 12, 12, 12); + + // 标题栏 + QHBoxLayout *headerLayout = new QHBoxLayout(); + QLabel *iconLabel = new QLabel(); + iconLabel->setObjectName("ModuleIcon"); + iconLabel->setText(icon); // 使用Unicode图标或设置图片 + iconLabel->setFixedSize(20, 20); + + m_titleLabel = new QLabel(title); + m_titleLabel->setObjectName("ModuleTitle"); + + headerLayout->addWidget(iconLabel); + headerLayout->addWidget(m_titleLabel); + headerLayout->addStretch(); + + layout->addLayout(headerLayout); + + // 内容区域 + m_contentLayout = new QVBoxLayout(); + m_contentLayout->setSpacing(8); + layout->addLayout(m_contentLayout); +} + +void ModuleCard::addContent(QWidget *content) +{ + m_contentLayout->addWidget(content); +} + +// DeviceCard实现 +DeviceCard::DeviceCard(const QString &name, const QString &iconPath, QWidget *parent) + : QFrame(parent), m_deviceName(name) +{ + setObjectName("DeviceCard"); + setFrameStyle(QFrame::StyledPanel); + setCursor(Qt::PointingHandCursor); + setFixedHeight(80); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setAlignment(Qt::AlignCenter); + layout->setSpacing(4); + + m_iconLabel = new QLabel(); + m_iconLabel->setObjectName("DeviceIcon"); + m_iconLabel->setFixedSize(32, 32); + m_iconLabel->setAlignment(Qt::AlignCenter); + // 设置图标,这里用文字代替 + m_iconLabel->setText(name.contains("机器狗") ? "🐕" : "🚁"); + + m_nameLabel = new QLabel(name); + m_nameLabel->setObjectName("DeviceName"); + m_nameLabel->setAlignment(Qt::AlignCenter); + + m_statusLabel = new QLabel("离线"); + m_statusLabel->setObjectName("DeviceStatus"); + m_statusLabel->setAlignment(Qt::AlignCenter); + + layout->addWidget(m_iconLabel); + layout->addWidget(m_nameLabel); + layout->addWidget(m_statusLabel); +} + +void DeviceCard::setStatus(const QString &status, const QColor &color) +{ + m_statusLabel->setText(status); + m_statusLabel->setStyleSheet(QString("color: %1;").arg(color.name())); +} + +void DeviceCard::setActive(bool active) +{ + m_isActive = active; + update(); +} + +void DeviceCard::mousePressEvent(QMouseEvent *event) +{ + if (event->button() == Qt::LeftButton) { + emit deviceSelected(m_deviceName); + } + QFrame::mousePressEvent(event); +} + +void DeviceCard::paintEvent(QPaintEvent *event) +{ + QFrame::paintEvent(event); + + if (m_isActive) { + QPainter painter(this); + painter.setPen(QPen(QColor("#2E5D31"), 2)); + painter.drawRect(rect().adjusted(1, 1, -1, -1)); + } +} + +// RightFunctionPanel实现 +RightFunctionPanel::RightFunctionPanel(QWidget *parent) + : QWidget(parent) +{ + setupUI(); + applyStyles(); +} + +void RightFunctionPanel::setupUI() +{ + m_mainLayout = new QVBoxLayout(this); + m_mainLayout->setSpacing(12); + m_mainLayout->setContentsMargins(16, 16, 16, 16); + + // 面板标题 + QLabel *titleLabel = new QLabel("功能面板"); + titleLabel->setObjectName("PanelTitle"); + titleLabel->setAlignment(Qt::AlignCenter); + m_mainLayout->addWidget(titleLabel); + + setupBattlefieldExplorationModule(); + setupIntelligenceModule(); + setupEnemyStatsModule(); + + m_mainLayout->addStretch(); +} + +void RightFunctionPanel::setupBattlefieldExplorationModule() +{ + m_explorationCard = new ModuleCard("战场探索", "🔍", this); + + // 设备选择 + QHBoxLayout *deviceLayout = new QHBoxLayout(); + m_robotDogCard = new DeviceCard("机器狗", "robot_dog.png", this); + m_droneCard = new DeviceCard("无人机", "drone.png", this); + + connect(m_robotDogCard, &DeviceCard::deviceSelected, this, &RightFunctionPanel::onDeviceSelected); + connect(m_droneCard, &DeviceCard::deviceSelected, this, &RightFunctionPanel::onDeviceSelected); + + deviceLayout->addWidget(m_robotDogCard); + deviceLayout->addWidget(m_droneCard); + + QWidget *deviceWidget = new QWidget(); + deviceWidget->setLayout(deviceLayout); + m_explorationCard->addContent(deviceWidget); + + // 功能按钮 + QGridLayout *buttonLayout = new QGridLayout(); + m_mappingBtn = new QPushButton("自主建图"); + m_navigationBtn = new QPushButton("导航避障"); + m_photoBtn = new QPushButton("照片传输"); + m_recognitionBtn = new QPushButton("人物识别"); + + // 设置按钮样式类名 + m_mappingBtn->setObjectName("FunctionBtn"); + m_navigationBtn->setObjectName("FunctionBtn"); + m_photoBtn->setObjectName("FunctionBtn"); + m_recognitionBtn->setObjectName("FunctionBtn"); + + buttonLayout->addWidget(m_mappingBtn, 0, 0); + buttonLayout->addWidget(m_navigationBtn, 0, 1); + buttonLayout->addWidget(m_photoBtn, 1, 0); + buttonLayout->addWidget(m_recognitionBtn, 1, 1); + + connect(m_mappingBtn, &QPushButton::clicked, this, &RightFunctionPanel::onMappingToggle); + connect(m_navigationBtn, &QPushButton::clicked, this, &RightFunctionPanel::onNavigationToggle); + connect(m_photoBtn, &QPushButton::clicked, this, &RightFunctionPanel::onPhotoTransmissionToggle); + connect(m_recognitionBtn, &QPushButton::clicked, this, &RightFunctionPanel::onPersonRecognitionToggle); + + QWidget *buttonWidget = new QWidget(); + buttonWidget->setLayout(buttonLayout); + m_explorationCard->addContent(buttonWidget); + + m_mainLayout->addWidget(m_explorationCard); +} + +void RightFunctionPanel::setupIntelligenceModule() +{ + m_intelligenceCard = new ModuleCard("情报传输", "📡", this); + + // 通话控制 + QHBoxLayout *callLayout = new QHBoxLayout(); + m_voiceCallBtn = new QPushButton("开始通话"); + m_muteBtn = new QPushButton("静音"); + m_voiceCallBtn->setObjectName("FunctionBtn"); + m_muteBtn->setObjectName("FunctionBtn"); + m_muteBtn->setEnabled(false); + + callLayout->addWidget(m_voiceCallBtn); + callLayout->addWidget(m_muteBtn); + + connect(m_voiceCallBtn, &QPushButton::clicked, this, &RightFunctionPanel::onVoiceCallToggle); + + QWidget *callWidget = new QWidget(); + callWidget->setLayout(callLayout); + m_intelligenceCard->addContent(callWidget); + + // 音量控制 + QHBoxLayout *volumeLayout = new QHBoxLayout(); + QLabel *volumeLabel = new QLabel("音量:"); + m_volumeSlider = new QSlider(Qt::Horizontal); + m_volumeSlider->setRange(0, 100); + m_volumeSlider->setValue(70); + + volumeLayout->addWidget(volumeLabel); + volumeLayout->addWidget(m_volumeSlider); + + QWidget *volumeWidget = new QWidget(); + volumeWidget->setLayout(volumeLayout); + m_intelligenceCard->addContent(volumeWidget); + + // 通话状态 + m_callStatusLabel = new QLabel("未连接"); + m_callStatusLabel->setObjectName("CallStatus"); + m_intelligenceCard->addContent(m_callStatusLabel); + + m_mainLayout->addWidget(m_intelligenceCard); +} + +void RightFunctionPanel::setupEnemyStatsModule() +{ + m_statsCard = new ModuleCard("敌情统计", "📊", this); + + // 统计信息 + QVBoxLayout *statsLayout = new QVBoxLayout(); + + m_totalEnemiesLabel = new QLabel("已发现目标: 0"); + m_threatLevelLabel = new QLabel("威胁等级: 无"); + m_totalEnemiesLabel->setObjectName("StatLabel"); + m_threatLevelLabel->setObjectName("StatLabel"); + + statsLayout->addWidget(m_totalEnemiesLabel); + statsLayout->addWidget(m_threatLevelLabel); + + QWidget *statsWidget = new QWidget(); + statsWidget->setLayout(statsLayout); + m_statsCard->addContent(statsWidget); + + // 操作按钮 + QHBoxLayout *statsButtonLayout = new QHBoxLayout(); + m_refreshBtn = new QPushButton("刷新"); + m_aiAnalysisBtn = new QPushButton("AI分析"); + m_exportBtn = new QPushButton("导出报告"); + + m_refreshBtn->setObjectName("FunctionBtn"); + m_aiAnalysisBtn->setObjectName("FunctionBtn"); + m_exportBtn->setObjectName("FunctionBtn"); + + statsButtonLayout->addWidget(m_refreshBtn); + statsButtonLayout->addWidget(m_aiAnalysisBtn); + + connect(m_refreshBtn, &QPushButton::clicked, this, &RightFunctionPanel::onRefreshStats); + connect(m_aiAnalysisBtn, &QPushButton::clicked, this, &RightFunctionPanel::onAIAnalysis); + + QWidget *statsButtonWidget = new QWidget(); + statsButtonWidget->setLayout(statsButtonLayout); + m_statsCard->addContent(statsButtonWidget); + + // 导出按钮单独一行 + m_statsCard->addContent(m_exportBtn); + + m_mainLayout->addWidget(m_statsCard); +} + +void RightFunctionPanel::applyStyles() +{ + QString styles = R"( + QWidget { + font-family: "Microsoft YaHei", "SimHei", sans-serif; + } + + RightFunctionPanel { + background-color: #2A3F47; + border-left: 2px solid #546E7A; + } + + #PanelTitle { + font-size: 16px; + font-weight: bold; + color: #FFFFFF; + border-bottom: 1px solid #546E7A; + padding-bottom: 8px; + margin-bottom: 12px; + } + + #ModuleCard { + background-color: #354A54; + border: 1px solid #546E7A; + border-radius: 8px; + padding: 12px; + } + + #ModuleCard:hover { + border-color: #2E5D31; + background-color: #4A6572; + } + + #ModuleTitle { + font-size: 14px; + font-weight: 500; + color: #FFFFFF; + } + + #ModuleIcon { + font-size: 16px; + color: #2E5D31; + } + + #DeviceCard { + background-color: #3D525E; + border: 1px solid #546E7A; + border-radius: 6px; + padding: 8px; + } + + #DeviceCard:hover { + background-color: #4A6572; + border-color: #2E5D31; + } + + #DeviceName { + font-size: 12px; + color: #FFFFFF; + font-weight: 500; + } + + #DeviceStatus { + font-size: 10px; + color: #78909C; + } + + #FunctionBtn { + background-color: #2E5D31; + color: #FFFFFF; + border: none; + border-radius: 4px; + padding: 8px 12px; + font-size: 12px; + font-weight: 500; + min-height: 32px; + } + + #FunctionBtn:hover { + background-color: #245429; + } + + #FunctionBtn:pressed { + background-color: #1a3d1d; + } + + #FunctionBtn:disabled { + background-color: #78909C; + } + + #StatLabel { + font-size: 12px; + color: #B0BEC5; + padding: 4px 0; + } + + #CallStatus { + font-size: 11px; + color: #78909C; + font-style: italic; + text-align: center; + } + + QSlider::groove:horizontal { + border: 1px solid #546E7A; + height: 4px; + background: #3D525E; + border-radius: 2px; + } + + QSlider::handle:horizontal { + background: #2E5D31; + border: 1px solid #546E7A; + width: 12px; + margin: -4px 0; + border-radius: 6px; + } + + QSlider::handle:horizontal:hover { + background: #245429; + } + )"; + + setStyleSheet(styles); +} + +// 槽函数实现 +void RightFunctionPanel::onDeviceSelected(const QString &deviceName) +{ + m_selectedDevice = deviceName; + + // 更新设备选择状态 + m_robotDogCard->setActive(deviceName.contains("机器狗")); + m_droneCard->setActive(deviceName.contains("无人机")); + + // 根据设备类型启用/禁用相应按钮 + bool isRobotDog = deviceName.contains("机器狗"); + m_mappingBtn->setEnabled(isRobotDog); + m_navigationBtn->setEnabled(isRobotDog); + m_photoBtn->setEnabled(!isRobotDog); + m_recognitionBtn->setEnabled(!isRobotDog); +} + +void RightFunctionPanel::onMappingToggle() +{ + static bool isMappingActive = false; + isMappingActive = !isMappingActive; + + m_mappingBtn->setText(isMappingActive ? "停止建图" : "自主建图"); + + if (isMappingActive) { + emit startMapping(); + } else { + emit stopMapping(); + } +} + +void RightFunctionPanel::onNavigationToggle() +{ + static bool isNavigationActive = false; + isNavigationActive = !isNavigationActive; + + m_navigationBtn->setText(isNavigationActive ? "停止导航" : "导航避障"); + + if (isNavigationActive) { + emit startNavigation(); + } else { + emit stopNavigation(); + } +} + +void RightFunctionPanel::onPhotoTransmissionToggle() +{ + static bool isTransmissionActive = false; + isTransmissionActive = !isTransmissionActive; + + m_photoBtn->setText(isTransmissionActive ? "停止传输" : "照片传输"); + + if (isTransmissionActive) { + emit startPhotoTransmission(); + } else { + emit stopPhotoTransmission(); + } +} + +void RightFunctionPanel::onPersonRecognitionToggle() +{ + static bool isRecognitionActive = false; + isRecognitionActive = !isRecognitionActive; + + m_recognitionBtn->setText(isRecognitionActive ? "停止识别" : "人物识别"); + + if (isRecognitionActive) { + emit startPersonRecognition(); + } else { + emit stopPersonRecognition(); + } +} + +void RightFunctionPanel::onVoiceCallToggle() +{ + m_isInCall = !m_isInCall; + + m_voiceCallBtn->setText(m_isInCall ? "结束通话" : "开始通话"); + m_muteBtn->setEnabled(m_isInCall); + m_callStatusLabel->setText(m_isInCall ? "通话中..." : "未连接"); + + if (m_isInCall) { + emit startVoiceCall(); + } else { + emit endVoiceCall(); + } +} + +void RightFunctionPanel::onRefreshStats() +{ + emit refreshEnemyStats(); + + // 模拟刷新效果 + m_refreshBtn->setText("刷新中..."); + m_refreshBtn->setEnabled(false); + + QTimer::singleShot(2000, [this]() { + m_refreshBtn->setText("刷新"); + m_refreshBtn->setEnabled(true); + }); +} + +void RightFunctionPanel::onAIAnalysis() +{ + emit requestAIAnalysis(); + + // 显示分析状态 + m_aiAnalysisBtn->setText("分析中..."); + m_aiAnalysisBtn->setEnabled(false); + + QTimer::singleShot(3000, [this]() { + m_aiAnalysisBtn->setText("AI分析"); + m_aiAnalysisBtn->setEnabled(true); + }); +} + +void RightFunctionPanel::updateEnemyStats(int totalEnemies, const QString &threatLevel) +{ + m_totalEnemiesLabel->setText(QString("已发现目标: %1").arg(totalEnemies)); + m_threatLevelLabel->setText(QString("威胁等级: %1").arg(threatLevel)); + + // 根据威胁等级设置颜色 + if (threatLevel == "高") { + m_threatLevelLabel->setStyleSheet("color: #DC143C;"); + } else if (threatLevel == "中") { + m_threatLevelLabel->setStyleSheet("color: #FF8C00;"); + } else { + m_threatLevelLabel->setStyleSheet("color: #4CAF50;"); + } +} + +void RightFunctionPanel::updateDeviceStatus(const QString &deviceName, bool online, int battery) +{ + DeviceCard *deviceCard = nullptr; + if (deviceName.contains("机器狗")) { + deviceCard = m_robotDogCard; + } else if (deviceName.contains("无人机")) { + deviceCard = m_droneCard; + } + + if (deviceCard) { + if (online) { + deviceCard->setStatus(QString("在线 %1%").arg(battery), QColor("#4CAF50")); + } else { + deviceCard->setStatus("离线", QColor("#78909C")); + } + } +} + +#include "RightFunctionPanel.moc" \ No newline at end of file diff --git a/src/Client/include/ui/components/RightFunctionPanel.h b/src/Client/include/ui/components/RightFunctionPanel.h new file mode 100644 index 0000000..0d6cff6 --- /dev/null +++ b/src/Client/include/ui/components/RightFunctionPanel.h @@ -0,0 +1,333 @@ +/** + * @file RightFunctionPanel.h + * @brief 右侧功能面板组件定义 + * @author BattlefieldExplorationSystem Team + * @date 2024-01-15 + * @version 1.0 + * + * 右侧功能面板,提供战场探索系统的核心功能控制,包括: + * - 战场探索模块(机器狗和无人机控制) + * - 情报传输模块(语音通话功能) + * - 敌情统计模块(敌情可视化和AI分析) + * + * @note 依赖Qt GUI模块 + * @since 1.0 + */ + +#ifndef RIGHTFUNCTIONPANEL_H +#define RIGHTFUNCTIONPANEL_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** + * @class ModuleCard + * @brief 功能模块卡片组件 + * + * 用于显示单个功能模块的卡片容器,包含标题和内容区域 + */ +class ModuleCard : public QFrame +{ + Q_OBJECT + +public: + /** + * @brief 构造函数 + * @param title 模块标题 + * @param icon 模块图标(Unicode字符或图片路径) + * @param parent 父组件指针 + */ + explicit ModuleCard(const QString &title, const QString &icon, QWidget *parent = nullptr); + + /** + * @brief 添加内容到模块卡片 + * @param content 要添加的内容组件 + */ + void addContent(QWidget *content); + +private: + QVBoxLayout *m_contentLayout; ///< 内容区域布局 + QLabel *m_titleLabel; ///< 标题标签 +}; + +/** + * @class RightDeviceCard + * @brief 右侧面板设备卡片组件 + * + * 用于显示单个设备的信息卡片,支持点击选择和状态显示 + */ +class RightDeviceCard : public QFrame +{ + Q_OBJECT + +public: + /** + * @brief 构造函数 + * @param name 设备名称 + * @param iconPath 设备图标路径 + * @param parent 父组件指针 + */ + explicit RightDeviceCard(const QString &name, const QString &iconPath, QWidget *parent = nullptr); + + /** + * @brief 设置设备状态 + * @param status 状态文本 + * @param color 状态颜色 + */ + void setStatus(const QString &status, const QColor &color); + + /** + * @brief 设置设备选中状态 + * @param active 是否选中 + */ + void setActive(bool active); + +signals: + /** + * @brief 设备被选中信号 + * @param deviceName 设备名称 + */ + void deviceSelected(const QString &deviceName); + +protected: + /** + * @brief 鼠标点击事件 + * @param event 鼠标事件 + */ + void mousePressEvent(QMouseEvent *event) override; + + /** + * @brief 绘制事件(绘制选中边框) + * @param event 绘制事件 + */ + void paintEvent(QPaintEvent *event) override; + +private: + QString m_deviceName; ///< 设备名称 + QLabel *m_iconLabel; ///< 图标标签 + QLabel *m_nameLabel; ///< 名称标签 + QLabel *m_statusLabel; ///< 状态标签 + bool m_isActive = false; ///< 是否选中状态 +}; + +/** + * @class RightFunctionPanel + * @brief 右侧功能面板主组件 + * + * 包含战场探索、情报传输、敌情统计三大功能模块的主面板 + */ +class RightFunctionPanel : public QWidget +{ + Q_OBJECT + +public: + /** + * @brief 构造函数 + * @param parent 父组件指针 + */ + explicit RightFunctionPanel(QWidget *parent = nullptr); + +signals: + // 战场探索模块信号 + /** + * @brief 开始自主建图信号 + */ + void startMapping(); + + /** + * @brief 停止自主建图信号 + */ + void stopMapping(); + + /** + * @brief 开始导航避障信号 + */ + void startNavigation(); + + /** + * @brief 停止导航避障信号 + */ + void stopNavigation(); + + /** + * @brief 开始照片传输信号 + */ + void startPhotoTransmission(); + + /** + * @brief 停止照片传输信号 + */ + void stopPhotoTransmission(); + + /** + * @brief 开始人物识别信号 + */ + void startPersonRecognition(); + + /** + * @brief 停止人物识别信号 + */ + void stopPersonRecognition(); + + // 情报传输模块信号 + /** + * @brief 开始语音通话信号 + */ + void startVoiceCall(); + + /** + * @brief 结束语音通话信号 + */ + void endVoiceCall(); + + /** + * @brief 通话静音切换信号 + * @param muted 是否静音 + */ + void muteCall(bool muted); + + /** + * @brief 设置通话音量信号 + * @param volume 音量值(0-100) + */ + void setCallVolume(int volume); + + // 敌情统计模块信号 + /** + * @brief 刷新敌情统计信号 + */ + void refreshEnemyStats(); + + /** + * @brief 导出报告信号 + */ + void exportReport(); + + /** + * @brief 请求AI分析信号 + */ + void requestAIAnalysis(); + +public slots: + /** + * @brief 更新敌情统计信息 + * @param totalEnemies 敌人总数 + * @param threatLevel 威胁等级 + */ + void updateEnemyStats(int totalEnemies, const QString &threatLevel); + + /** + * @brief 更新设备状态 + * @param deviceName 设备名称 + * @param online 是否在线 + * @param battery 电池电量 + */ + void updateDeviceStatus(const QString &deviceName, bool online, int battery); + +private slots: + /** + * @brief 设备选择槽函数 + * @param deviceName 设备名称 + */ + void onDeviceSelected(const QString &deviceName); + + /** + * @brief 自主建图开关槽函数 + */ + void onMappingToggle(); + + /** + * @brief 导航避障开关槽函数 + */ + void onNavigationToggle(); + + /** + * @brief 照片传输开关槽函数 + */ + void onPhotoTransmissionToggle(); + + /** + * @brief 人物识别开关槽函数 + */ + void onPersonRecognitionToggle(); + + /** + * @brief 语音通话开关槽函数 + */ + void onVoiceCallToggle(); + + /** + * @brief 刷新统计槽函数 + */ + void onRefreshStats(); + + /** + * @brief AI分析槽函数 + */ + void onAIAnalysis(); + +private: + /** + * @brief 设置UI界面 + */ + void setupUI(); + + /** + * @brief 设置战场探索模块 + */ + void setupBattlefieldExplorationModule(); + + /** + * @brief 设置情报传输模块 + */ + void setupIntelligenceModule(); + + /** + * @brief 设置敌情统计模块 + */ + void setupEnemyStatsModule(); + + /** + * @brief 应用样式表 + */ + void applyStyles(); + + // UI组件 + QVBoxLayout *m_mainLayout; ///< 主布局 + + // 战场探索模块 + ModuleCard *m_explorationCard; ///< 探索模块卡片 + RightDeviceCard *m_robotDogCard; ///< 机器狗设备卡片 + RightDeviceCard *m_droneCard; ///< 无人机设备卡片 + QPushButton *m_mappingBtn; ///< 建图按钮 + QPushButton *m_navigationBtn; ///< 导航按钮 + QPushButton *m_photoBtn; ///< 照片传输按钮 + QPushButton *m_recognitionBtn; ///< 人物识别按钮 + QString m_selectedDevice; ///< 当前选择的设备 + + // 情报传输模块 + ModuleCard *m_intelligenceCard; ///< 情报模块卡片 + QPushButton *m_voiceCallBtn; ///< 语音通话按钮 + QPushButton *m_muteBtn; ///< 静音按钮 + QSlider *m_volumeSlider; ///< 音量滑块 + QLabel *m_callStatusLabel; ///< 通话状态标签 + bool m_isInCall = false; ///< 是否在通话中 + + // 敌情统计模块 + ModuleCard *m_statsCard; ///< 统计模块卡片 + QLabel *m_totalEnemiesLabel; ///< 敌人总数标签 + QLabel *m_threatLevelLabel; ///< 威胁等级标签 + QPushButton *m_refreshBtn; ///< 刷新按钮 + QPushButton *m_aiAnalysisBtn; ///< AI分析按钮 + QPushButton *m_exportBtn; ///< 导出按钮 +}; + +#endif // RIGHTFUNCTIONPANEL_H \ No newline at end of file diff --git a/src/Client/include/ui/main/MainWindow.h b/src/Client/include/ui/main/MainWindow.h index f226443..eb5f8f3 100644 --- a/src/Client/include/ui/main/MainWindow.h +++ b/src/Client/include/ui/main/MainWindow.h @@ -42,6 +42,7 @@ // #include "AudioModule/IntelligenceUI.h" // 暂时注释掉,待实现 #include "ui/components/DeviceListPanel.h" #include "ui/components/SystemLogPanel.h" +#include "ui/components/RightFunctionPanel.h" // 标准库头文件 #include @@ -221,6 +222,73 @@ private slots: */ void onAddDeviceRequested(const QString &deviceType); +private slots: + // 右侧功能面板信号处理槽函数 + /** + * @brief 开始自主建图槽函数 + */ + void onStartMapping(); + + /** + * @brief 停止自主建图槽函数 + */ + void onStopMapping(); + + /** + * @brief 开始导航避障槽函数 + */ + void onStartNavigation(); + + /** + * @brief 停止导航避障槽函数 + */ + void onStopNavigation(); + + /** + * @brief 开始照片传输槽函数 + */ + void onStartPhotoTransmission(); + + /** + * @brief 停止照片传输槽函数 + */ + void onStopPhotoTransmission(); + + /** + * @brief 开始人物识别槽函数 + */ + void onStartPersonRecognition(); + + /** + * @brief 停止人物识别槽函数 + */ + void onStopPersonRecognition(); + + /** + * @brief 开始语音通话槽函数 + */ + void onStartVoiceCall(); + + /** + * @brief 结束语音通话槽函数 + */ + void onEndVoiceCall(); + + /** + * @brief 刷新敌情统计槽函数 + */ + void onRefreshEnemyStats(); + + /** + * @brief 请求AI分析槽函数 + */ + void onRequestAIAnalysis(); + + /** + * @brief 导出报告槽函数 + */ + void onExportReport(); + private: /** * @brief 初始化UI界面 @@ -237,6 +305,11 @@ private: */ void setupSystemLogPanel(); + /** + * @brief 设置右侧功能面板 + */ + void setupRightFunctionPanel(); + /** * @brief 连接信号和槽 */ @@ -257,6 +330,7 @@ private: // IntelligenceUI *m_intelligenceUI; ///< 情报传达界面指针(暂时注释掉) DeviceListPanel *m_deviceListPanel; ///< 设备列表面板组件 SystemLogPanel *m_systemLogPanel; ///< 系统日志面板组件 + RightFunctionPanel *m_rightFunctionPanel; ///< 右侧功能面板组件 QSplitter *m_leftPanelSplitter; ///< 左侧面板分割器 QVector> m_robotList; ///< 机器人列表(名称-IP地址对) QVector> m_uavList; ///< 无人机列表(名称-IP地址对) diff --git a/src/Client/src/ui/components/RightFunctionPanel.cpp b/src/Client/src/ui/components/RightFunctionPanel.cpp new file mode 100644 index 0000000..4a4c68f --- /dev/null +++ b/src/Client/src/ui/components/RightFunctionPanel.cpp @@ -0,0 +1,631 @@ +/** + * @file RightFunctionPanel.cpp + * @brief 右侧功能面板组件实现 + * @author BattlefieldExplorationSystem Team + * @date 2024-01-15 + * @version 1.0 + */ + +#include "ui/components/RightFunctionPanel.h" +#include +#include +#include + +// ModuleCard实现 +ModuleCard::ModuleCard(const QString &title, const QString &icon, QWidget *parent) + : QFrame(parent) +{ + setObjectName("ModuleCard"); + setFrameStyle(QFrame::StyledPanel); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setSpacing(12); + layout->setContentsMargins(12, 12, 12, 12); + + // 标题栏 + QHBoxLayout *headerLayout = new QHBoxLayout(); + QLabel *iconLabel = new QLabel(); + iconLabel->setObjectName("ModuleIcon"); + iconLabel->setText(icon); // 使用Unicode图标 + iconLabel->setFixedSize(20, 20); + + m_titleLabel = new QLabel(title); + m_titleLabel->setObjectName("ModuleTitle"); + + headerLayout->addWidget(iconLabel); + headerLayout->addWidget(m_titleLabel); + headerLayout->addStretch(); + + layout->addLayout(headerLayout); + + // 内容区域 + m_contentLayout = new QVBoxLayout(); + m_contentLayout->setSpacing(8); + layout->addLayout(m_contentLayout); +} + +void ModuleCard::addContent(QWidget *content) +{ + m_contentLayout->addWidget(content); +} + +// RightDeviceCard实现 +RightDeviceCard::RightDeviceCard(const QString &name, const QString &iconPath, QWidget *parent) + : QFrame(parent), m_deviceName(name) +{ + setObjectName("RightDeviceCard"); + setFrameStyle(QFrame::StyledPanel); + setCursor(Qt::PointingHandCursor); + setFixedHeight(80); + + QVBoxLayout *layout = new QVBoxLayout(this); + layout->setAlignment(Qt::AlignCenter); + layout->setSpacing(4); + + m_iconLabel = new QLabel(); + m_iconLabel->setObjectName("DeviceIcon"); + m_iconLabel->setFixedSize(32, 32); + m_iconLabel->setAlignment(Qt::AlignCenter); + + // 设置图标,根据设备类型使用不同的Unicode字符 + if (name.contains("机器狗") || name.contains("robot") || name.contains("dog")) { + m_iconLabel->setText("🐕"); + m_iconLabel->setStyleSheet("font-size: 24px;"); + } else if (name.contains("无人机") || name.contains("drone") || name.contains("uav")) { + m_iconLabel->setText("🚁"); + m_iconLabel->setStyleSheet("font-size: 24px;"); + } else { + m_iconLabel->setText("📡"); + m_iconLabel->setStyleSheet("font-size: 24px;"); + } + + m_nameLabel = new QLabel(name); + m_nameLabel->setObjectName("DeviceName"); + m_nameLabel->setAlignment(Qt::AlignCenter); + + m_statusLabel = new QLabel("离线"); + m_statusLabel->setObjectName("DeviceStatus"); + m_statusLabel->setAlignment(Qt::AlignCenter); + + layout->addWidget(m_iconLabel); + layout->addWidget(m_nameLabel); + layout->addWidget(m_statusLabel); +} + +void RightDeviceCard::setStatus(const QString &status, const QColor &color) +{ + m_statusLabel->setText(status); + m_statusLabel->setStyleSheet(QString("color: %1;").arg(color.name())); +} + +void RightDeviceCard::setActive(bool active) +{ + m_isActive = active; + update(); +} + +void RightDeviceCard::mousePressEvent(QMouseEvent *event) +{ + if (event->button() == Qt::LeftButton) { + emit deviceSelected(m_deviceName); + } + QFrame::mousePressEvent(event); +} + +void RightDeviceCard::paintEvent(QPaintEvent *event) +{ + QFrame::paintEvent(event); + + if (m_isActive) { + QPainter painter(this); + painter.setPen(QPen(QColor("#2E5D31"), 2)); + painter.drawRect(rect().adjusted(1, 1, -1, -1)); + } +} + +// RightFunctionPanel实现 +RightFunctionPanel::RightFunctionPanel(QWidget *parent) + : QWidget(parent) +{ + setupUI(); + applyStyles(); +} + +void RightFunctionPanel::setupUI() +{ + setFixedWidth(320); + + m_mainLayout = new QVBoxLayout(this); + m_mainLayout->setSpacing(12); + m_mainLayout->setContentsMargins(16, 16, 16, 16); + + // 面板标题 + QLabel *titleLabel = new QLabel("功能面板"); + titleLabel->setObjectName("PanelTitle"); + titleLabel->setAlignment(Qt::AlignCenter); + m_mainLayout->addWidget(titleLabel); + + setupBattlefieldExplorationModule(); + setupIntelligenceModule(); + setupEnemyStatsModule(); + + m_mainLayout->addStretch(); +} + +void RightFunctionPanel::setupBattlefieldExplorationModule() +{ + m_explorationCard = new ModuleCard("战场探索", "🔍", this); + + // 设备选择 + QHBoxLayout *deviceLayout = new QHBoxLayout(); + m_robotDogCard = new RightDeviceCard("机器狗", "", this); + m_droneCard = new RightDeviceCard("无人机", "", this); + + connect(m_robotDogCard, &RightDeviceCard::deviceSelected, this, &RightFunctionPanel::onDeviceSelected); + connect(m_droneCard, &RightDeviceCard::deviceSelected, this, &RightFunctionPanel::onDeviceSelected); + + deviceLayout->addWidget(m_robotDogCard); + deviceLayout->addWidget(m_droneCard); + + QWidget *deviceWidget = new QWidget(); + deviceWidget->setLayout(deviceLayout); + m_explorationCard->addContent(deviceWidget); + + // 功能按钮 + QGridLayout *buttonLayout = new QGridLayout(); + m_mappingBtn = new QPushButton("自主建图"); + m_navigationBtn = new QPushButton("导航避障"); + m_photoBtn = new QPushButton("照片传输"); + m_recognitionBtn = new QPushButton("人物识别"); + + // 设置按钮样式类名 + m_mappingBtn->setObjectName("FunctionBtn"); + m_navigationBtn->setObjectName("FunctionBtn"); + m_photoBtn->setObjectName("FunctionBtn"); + m_recognitionBtn->setObjectName("FunctionBtn"); + + // 初始状态:禁用所有按钮,等待设备选择 + m_mappingBtn->setEnabled(false); + m_navigationBtn->setEnabled(false); + m_photoBtn->setEnabled(false); + m_recognitionBtn->setEnabled(false); + + buttonLayout->addWidget(m_mappingBtn, 0, 0); + buttonLayout->addWidget(m_navigationBtn, 0, 1); + buttonLayout->addWidget(m_photoBtn, 1, 0); + buttonLayout->addWidget(m_recognitionBtn, 1, 1); + + connect(m_mappingBtn, &QPushButton::clicked, this, &RightFunctionPanel::onMappingToggle); + connect(m_navigationBtn, &QPushButton::clicked, this, &RightFunctionPanel::onNavigationToggle); + connect(m_photoBtn, &QPushButton::clicked, this, &RightFunctionPanel::onPhotoTransmissionToggle); + connect(m_recognitionBtn, &QPushButton::clicked, this, &RightFunctionPanel::onPersonRecognitionToggle); + + QWidget *buttonWidget = new QWidget(); + buttonWidget->setLayout(buttonLayout); + m_explorationCard->addContent(buttonWidget); + + m_mainLayout->addWidget(m_explorationCard); +} + +void RightFunctionPanel::setupIntelligenceModule() +{ + m_intelligenceCard = new ModuleCard("情报传输", "📡", this); + + // 通话控制 + QHBoxLayout *callLayout = new QHBoxLayout(); + m_voiceCallBtn = new QPushButton("开始通话"); + m_muteBtn = new QPushButton("静音"); + m_voiceCallBtn->setObjectName("FunctionBtn"); + m_muteBtn->setObjectName("FunctionBtn"); + m_muteBtn->setEnabled(false); + + callLayout->addWidget(m_voiceCallBtn); + callLayout->addWidget(m_muteBtn); + + connect(m_voiceCallBtn, &QPushButton::clicked, this, &RightFunctionPanel::onVoiceCallToggle); + + QWidget *callWidget = new QWidget(); + callWidget->setLayout(callLayout); + m_intelligenceCard->addContent(callWidget); + + // 音量控制 + QHBoxLayout *volumeLayout = new QHBoxLayout(); + QLabel *volumeLabel = new QLabel("音量:"); + volumeLabel->setObjectName("VolumeLabel"); + m_volumeSlider = new QSlider(Qt::Horizontal); + m_volumeSlider->setRange(0, 100); + m_volumeSlider->setValue(70); + + volumeLayout->addWidget(volumeLabel); + volumeLayout->addWidget(m_volumeSlider); + + QWidget *volumeWidget = new QWidget(); + volumeWidget->setLayout(volumeLayout); + m_intelligenceCard->addContent(volumeWidget); + + // 通话状态 + m_callStatusLabel = new QLabel("未连接"); + m_callStatusLabel->setObjectName("CallStatus"); + m_callStatusLabel->setAlignment(Qt::AlignCenter); + m_intelligenceCard->addContent(m_callStatusLabel); + + m_mainLayout->addWidget(m_intelligenceCard); +} + +void RightFunctionPanel::setupEnemyStatsModule() +{ + m_statsCard = new ModuleCard("敌情统计", "📊", this); + + // 统计信息 + QVBoxLayout *statsLayout = new QVBoxLayout(); + + m_totalEnemiesLabel = new QLabel("已发现目标: 0"); + m_threatLevelLabel = new QLabel("威胁等级: 无"); + m_totalEnemiesLabel->setObjectName("StatLabel"); + m_threatLevelLabel->setObjectName("StatLabel"); + + statsLayout->addWidget(m_totalEnemiesLabel); + statsLayout->addWidget(m_threatLevelLabel); + + QWidget *statsWidget = new QWidget(); + statsWidget->setLayout(statsLayout); + m_statsCard->addContent(statsWidget); + + // 操作按钮 + QHBoxLayout *statsButtonLayout = new QHBoxLayout(); + m_refreshBtn = new QPushButton("刷新"); + m_aiAnalysisBtn = new QPushButton("AI分析"); + + m_refreshBtn->setObjectName("FunctionBtn"); + m_aiAnalysisBtn->setObjectName("FunctionBtn"); + + statsButtonLayout->addWidget(m_refreshBtn); + statsButtonLayout->addWidget(m_aiAnalysisBtn); + + connect(m_refreshBtn, &QPushButton::clicked, this, &RightFunctionPanel::onRefreshStats); + connect(m_aiAnalysisBtn, &QPushButton::clicked, this, &RightFunctionPanel::onAIAnalysis); + + QWidget *statsButtonWidget = new QWidget(); + statsButtonWidget->setLayout(statsButtonLayout); + m_statsCard->addContent(statsButtonWidget); + + // 导出按钮单独一行 + m_exportBtn = new QPushButton("导出报告"); + m_exportBtn->setObjectName("FunctionBtn"); + connect(m_exportBtn, &QPushButton::clicked, this, &RightFunctionPanel::exportReport); + m_statsCard->addContent(m_exportBtn); + + m_mainLayout->addWidget(m_statsCard); +} + +void RightFunctionPanel::applyStyles() +{ + QString styles = R"( + QWidget { + font-family: "Microsoft YaHei", "SimHei", sans-serif; + } + + RightFunctionPanel { + background: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, + stop:0 rgb(15, 22, 32), stop:1 rgb(25, 35, 45)); + border-radius: 8px; + margin: 0px; + } + + #PanelTitle { + font-size: 18px; + font-weight: bold; + color: #FFFFFF; + background: qlineargradient(x1:0, y1:0, x2:1, y2:1, + stop:0 rgba(82, 194, 242, 0.2), + stop:1 rgba(45, 120, 180, 0.2)); + border: 1px solid rgba(82, 194, 242, 0.5); + border-radius: 8px; + padding: 12px; + margin-bottom: 16px; + } + + #ModuleCard { + background: qlineargradient(x1:0, y1:0, x2:1, y2:1, + stop:0 rgba(30, 45, 55, 0.8), + stop:1 rgba(40, 58, 70, 0.8)); + border: 1px solid rgba(82, 194, 242, 0.3); + border-radius: 12px; + padding: 16px; + margin-bottom: 12px; + } + + #ModuleCard:hover { + border: 1px solid rgba(82, 194, 242, 0.6); + background: qlineargradient(x1:0, y1:0, x2:1, y2:1, + stop:0 rgba(35, 52, 62, 0.9), + stop:1 rgba(45, 65, 78, 0.9)); + } + + #ModuleTitle { + font-size: 14px; + font-weight: 500; + color: #FFFFFF; + } + + #ModuleIcon { + font-size: 18px; + color: rgba(82, 194, 242, 0.8); + } + + #RightDeviceCard { + background: qlineargradient(x1:0, y1:0, x2:1, y2:1, + stop:0 rgba(25, 38, 48, 0.8), + stop:1 rgba(35, 50, 62, 0.8)); + border: 1px solid rgba(82, 194, 242, 0.4); + border-radius: 8px; + padding: 10px; + margin: 2px; + } + + #RightDeviceCard:hover { + background: qlineargradient(x1:0, y1:0, x2:1, y2:1, + stop:0 rgba(30, 45, 55, 0.9), + stop:1 rgba(42, 60, 75, 0.9)); + border: 1px solid rgba(82, 194, 242, 0.7); + } + + #DeviceName { + font-size: 12px; + color: #FFFFFF; + font-weight: 500; + } + + #DeviceStatus { + font-size: 10px; + color: #78909C; + } + + #FunctionBtn { + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(46, 125, 180, 0.8), + stop:1 rgba(35, 95, 140, 0.8)); + color: #FFFFFF; + border: 1px solid rgba(82, 194, 242, 0.4); + border-radius: 6px; + padding: 10px 14px; + font-size: 12px; + font-weight: 500; + min-height: 36px; + } + + #FunctionBtn:hover { + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(52, 140, 200, 0.9), + stop:1 rgba(40, 110, 160, 0.9)); + border: 1px solid rgba(82, 194, 242, 0.7); + } + + #FunctionBtn:pressed { + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(30, 85, 125, 0.9), + stop:1 rgba(25, 65, 95, 0.9)); + } + + #FunctionBtn:disabled { + background-color: rgba(120, 144, 156, 0.5); + color: rgba(158, 158, 158, 0.7); + border: 1px solid rgba(120, 144, 156, 0.3); + } + + #StatLabel { + font-size: 12px; + color: #B0BEC5; + padding: 4px 0; + } + + #CallStatus { + font-size: 11px; + color: #78909C; + font-style: italic; + } + + #VolumeLabel { + font-size: 12px; + color: #B0BEC5; + } + + QSlider::groove:horizontal { + border: 1px solid rgba(82, 194, 242, 0.3); + height: 6px; + background: qlineargradient(x1:0, y1:0, x2:1, y2:0, + stop:0 rgba(25, 38, 48, 0.8), + stop:1 rgba(35, 50, 62, 0.8)); + border-radius: 3px; + } + + QSlider::handle:horizontal { + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(82, 194, 242, 0.9), + stop:1 rgba(45, 120, 180, 0.9)); + border: 1px solid rgba(82, 194, 242, 0.6); + width: 16px; + margin: -5px 0; + border-radius: 8px; + } + + QSlider::handle:horizontal:hover { + background: qlineargradient(x1:0, y1:0, x2:0, y2:1, + stop:0 rgba(100, 210, 255, 1.0), + stop:1 rgba(60, 140, 200, 1.0)); + } + )"; + + setStyleSheet(styles); +} + +// 槽函数实现 +void RightFunctionPanel::onDeviceSelected(const QString &deviceName) +{ + m_selectedDevice = deviceName; + + // 更新设备选择状态 + m_robotDogCard->setActive(deviceName.contains("机器狗") || deviceName.contains("robot") || deviceName.contains("dog")); + m_droneCard->setActive(deviceName.contains("无人机") || deviceName.contains("drone") || deviceName.contains("uav")); + + // 根据设备类型启用/禁用相应按钮 + bool isRobotDog = deviceName.contains("机器狗") || deviceName.contains("robot") || deviceName.contains("dog"); + m_mappingBtn->setEnabled(isRobotDog); + m_navigationBtn->setEnabled(isRobotDog); + m_photoBtn->setEnabled(!isRobotDog); + m_recognitionBtn->setEnabled(!isRobotDog); +} + +void RightFunctionPanel::onMappingToggle() +{ + static bool isMappingActive = false; + isMappingActive = !isMappingActive; + + m_mappingBtn->setText(isMappingActive ? "停止建图" : "自主建图"); + m_mappingBtn->setStyleSheet(isMappingActive ? + "background-color: #DC143C;" : + ""); + + if (isMappingActive) { + emit startMapping(); + } else { + emit stopMapping(); + } +} + +void RightFunctionPanel::onNavigationToggle() +{ + static bool isNavigationActive = false; + isNavigationActive = !isNavigationActive; + + m_navigationBtn->setText(isNavigationActive ? "停止导航" : "导航避障"); + m_navigationBtn->setStyleSheet(isNavigationActive ? + "background-color: #DC143C;" : + ""); + + if (isNavigationActive) { + emit startNavigation(); + } else { + emit stopNavigation(); + } +} + +void RightFunctionPanel::onPhotoTransmissionToggle() +{ + static bool isTransmissionActive = false; + isTransmissionActive = !isTransmissionActive; + + m_photoBtn->setText(isTransmissionActive ? "停止传输" : "照片传输"); + m_photoBtn->setStyleSheet(isTransmissionActive ? + "background-color: #DC143C;" : + ""); + + if (isTransmissionActive) { + emit startPhotoTransmission(); + } else { + emit stopPhotoTransmission(); + } +} + +void RightFunctionPanel::onPersonRecognitionToggle() +{ + static bool isRecognitionActive = false; + isRecognitionActive = !isRecognitionActive; + + m_recognitionBtn->setText(isRecognitionActive ? "停止识别" : "人物识别"); + m_recognitionBtn->setStyleSheet(isRecognitionActive ? + "background-color: #DC143C;" : + ""); + + if (isRecognitionActive) { + emit startPersonRecognition(); + } else { + emit stopPersonRecognition(); + } +} + +void RightFunctionPanel::onVoiceCallToggle() +{ + m_isInCall = !m_isInCall; + + m_voiceCallBtn->setText(m_isInCall ? "结束通话" : "开始通话"); + m_voiceCallBtn->setStyleSheet(m_isInCall ? + "background-color: #DC143C;" : + ""); + m_muteBtn->setEnabled(m_isInCall); + m_callStatusLabel->setText(m_isInCall ? "通话中..." : "未连接"); + + if (m_isInCall) { + emit startVoiceCall(); + } else { + emit endVoiceCall(); + } +} + +void RightFunctionPanel::onRefreshStats() +{ + emit refreshEnemyStats(); + + // 模拟刷新效果 + m_refreshBtn->setText("刷新中..."); + m_refreshBtn->setEnabled(false); + + QTimer::singleShot(2000, [this]() { + m_refreshBtn->setText("刷新"); + m_refreshBtn->setEnabled(true); + }); +} + +void RightFunctionPanel::onAIAnalysis() +{ + emit requestAIAnalysis(); + + // 显示分析状态 + m_aiAnalysisBtn->setText("分析中..."); + m_aiAnalysisBtn->setEnabled(false); + + QTimer::singleShot(3000, [this]() { + m_aiAnalysisBtn->setText("AI分析"); + m_aiAnalysisBtn->setEnabled(true); + }); +} + +void RightFunctionPanel::updateEnemyStats(int totalEnemies, const QString &threatLevel) +{ + m_totalEnemiesLabel->setText(QString("已发现目标: %1").arg(totalEnemies)); + m_threatLevelLabel->setText(QString("威胁等级: %1").arg(threatLevel)); + + // 根据威胁等级设置颜色 + if (threatLevel == "高") { + m_threatLevelLabel->setStyleSheet("color: #DC143C; font-weight: bold;"); + } else if (threatLevel == "中") { + m_threatLevelLabel->setStyleSheet("color: #FF8C00; font-weight: bold;"); + } else { + m_threatLevelLabel->setStyleSheet("color: #4CAF50; font-weight: bold;"); + } +} + +void RightFunctionPanel::updateDeviceStatus(const QString &deviceName, bool online, int battery) +{ + RightDeviceCard *deviceCard = nullptr; + if (deviceName.contains("机器狗") || deviceName.contains("robot") || deviceName.contains("dog")) { + deviceCard = m_robotDogCard; + } else if (deviceName.contains("无人机") || deviceName.contains("drone") || deviceName.contains("uav")) { + deviceCard = m_droneCard; + } + + if (deviceCard) { + if (online) { + if (battery > 50) { + deviceCard->setStatus(QString("在线 %1%").arg(battery), QColor("#4CAF50")); + } else if (battery > 20) { + deviceCard->setStatus(QString("在线 %1%").arg(battery), QColor("#FF8C00")); + } else { + deviceCard->setStatus(QString("在线 %1%").arg(battery), QColor("#DC143C")); + } + } else { + deviceCard->setStatus("离线", QColor("#78909C")); + } + } +} + diff --git a/src/Client/src/ui/main/MainWindow.cpp b/src/Client/src/ui/main/MainWindow.cpp index b541d81..5b57da2 100644 --- a/src/Client/src/ui/main/MainWindow.cpp +++ b/src/Client/src/ui/main/MainWindow.cpp @@ -50,6 +50,7 @@ MainWindow::MainWindow(QWidget *parent) , m_ui(new Ui::MainWindow) , m_deviceListPanel(nullptr) , m_systemLogPanel(nullptr) + , m_rightFunctionPanel(nullptr) , m_leftPanelSplitter(nullptr) // , m_intelligenceUI(nullptr) // 暂时注释掉 { @@ -91,6 +92,9 @@ void MainWindow::setupUI() // 创建并集成SystemLogPanel和DeviceListPanel到左侧面板 setupSystemLogPanel(); + // 创建并集成右侧功能面板 + setupRightFunctionPanel(); + // 恢复地图显示控制 setupMapDisplay(); // 注意:原有的重复设备管理按钮已被移除,功能集成在DeviceListPanel中 @@ -176,6 +180,75 @@ void MainWindow::setupSystemLogPanel() } } +void MainWindow::setupRightFunctionPanel() +{ + // 创建右侧功能面板 + m_rightFunctionPanel = new RightFunctionPanel(this); + + // 获取右侧面板的布局 + QVBoxLayout *rightLayout = qobject_cast(m_ui->rightPanel->layout()); + if (rightLayout) { + // 彻底清除原有控件,避免UI冗余 + QLayoutItem *item; + while ((item = rightLayout->takeAt(0)) != nullptr) { + if (item->widget()) { + item->widget()->deleteLater(); + } + delete item; + } + + // 将右侧功能面板添加到右侧面板 + rightLayout->addWidget(m_rightFunctionPanel); + + // 连接右侧功能面板信号 + // 战场探索模块信号 + connect(m_rightFunctionPanel, &RightFunctionPanel::startMapping, + this, &MainWindow::onStartMapping); + connect(m_rightFunctionPanel, &RightFunctionPanel::stopMapping, + this, &MainWindow::onStopMapping); + connect(m_rightFunctionPanel, &RightFunctionPanel::startNavigation, + this, &MainWindow::onStartNavigation); + connect(m_rightFunctionPanel, &RightFunctionPanel::stopNavigation, + this, &MainWindow::onStopNavigation); + connect(m_rightFunctionPanel, &RightFunctionPanel::startPhotoTransmission, + this, &MainWindow::onStartPhotoTransmission); + connect(m_rightFunctionPanel, &RightFunctionPanel::stopPhotoTransmission, + this, &MainWindow::onStopPhotoTransmission); + connect(m_rightFunctionPanel, &RightFunctionPanel::startPersonRecognition, + this, &MainWindow::onStartPersonRecognition); + connect(m_rightFunctionPanel, &RightFunctionPanel::stopPersonRecognition, + this, &MainWindow::onStopPersonRecognition); + + // 情报传输模块信号 + connect(m_rightFunctionPanel, &RightFunctionPanel::startVoiceCall, + this, &MainWindow::onStartVoiceCall); + connect(m_rightFunctionPanel, &RightFunctionPanel::endVoiceCall, + this, &MainWindow::onEndVoiceCall); + + // 敌情统计模块信号 + connect(m_rightFunctionPanel, &RightFunctionPanel::refreshEnemyStats, + this, &MainWindow::onRefreshEnemyStats); + connect(m_rightFunctionPanel, &RightFunctionPanel::requestAIAnalysis, + this, &MainWindow::onRequestAIAnalysis); + connect(m_rightFunctionPanel, &RightFunctionPanel::exportReport, + this, &MainWindow::onExportReport); + + qDebug() << "RightFunctionPanel integrated successfully"; + SystemLogger::getInstance()->logInfo("右侧功能面板初始化完成"); + + // 模拟初始化一些设备状态 + QTimer::singleShot(1000, [this]() { + m_rightFunctionPanel->updateDeviceStatus("机器狗", true, 85); + m_rightFunctionPanel->updateDeviceStatus("无人机", true, 92); + m_rightFunctionPanel->updateEnemyStats(3, "中"); + }); + + } else { + qWarning() << "Failed to get right panel layout"; + SystemLogger::getInstance()->logError("右侧面板布局获取失败"); + } +} + void MainWindow::setupDeviceListPanel() { // 此方法已被setupSystemLogPanel()替代,保留以兼容可能的调用 @@ -1080,4 +1153,146 @@ bool MainWindow::addDeviceToDatabase(const QString &deviceId, const QString &nam db.close(); return success; +} + +// 右侧功能面板槽函数实现 +void MainWindow::onStartMapping() +{ + qDebug() << "Starting autonomous mapping..."; + SystemLogger::getInstance()->logInfo("开始自主建图"); + + // TODO: 实现自主建图功能 + // 这里应该连接到实际的机器狗建图系统 +} + +void MainWindow::onStopMapping() +{ + qDebug() << "Stopping autonomous mapping..."; + SystemLogger::getInstance()->logInfo("停止自主建图"); + + // TODO: 实现停止建图功能 +} + +void MainWindow::onStartNavigation() +{ + qDebug() << "Starting navigation and obstacle avoidance..."; + SystemLogger::getInstance()->logInfo("开始导航避障"); + + // TODO: 实现导航避障功能 +} + +void MainWindow::onStopNavigation() +{ + qDebug() << "Stopping navigation..."; + SystemLogger::getInstance()->logInfo("停止导航避障"); + + // TODO: 实现停止导航功能 +} + +void MainWindow::onStartPhotoTransmission() +{ + qDebug() << "Starting photo transmission from UAV..."; + SystemLogger::getInstance()->logInfo("开始无人机照片传输"); + + // TODO: 实现无人机照片传输功能 + // 这里应该连接到实际的无人机摄像头系统 +} + +void MainWindow::onStopPhotoTransmission() +{ + qDebug() << "Stopping photo transmission..."; + SystemLogger::getInstance()->logInfo("停止照片传输"); + + // TODO: 实现停止照片传输功能 +} + +void MainWindow::onStartPersonRecognition() +{ + qDebug() << "Starting person recognition..."; + SystemLogger::getInstance()->logInfo("开始人物识别"); + + // TODO: 实现人物识别功能 + // 这里应该连接到AI人物识别系统 +} + +void MainWindow::onStopPersonRecognition() +{ + qDebug() << "Stopping person recognition..."; + SystemLogger::getInstance()->logInfo("停止人物识别"); + + // TODO: 实现停止人物识别功能 +} + +void MainWindow::onStartVoiceCall() +{ + qDebug() << "Starting voice communication..."; + SystemLogger::getInstance()->logInfo("开始语音通话"); + + // TODO: 实现语音通话功能 + // 这里应该连接到实际的音频通信系统 +} + +void MainWindow::onEndVoiceCall() +{ + qDebug() << "Ending voice communication..."; + SystemLogger::getInstance()->logInfo("结束语音通话"); + + // TODO: 实现结束通话功能 +} + +void MainWindow::onRefreshEnemyStats() +{ + qDebug() << "Refreshing enemy statistics..."; + SystemLogger::getInstance()->logInfo("刷新敌情统计"); + + // TODO: 实现从数据库或AI系统获取最新敌情数据 + // 模拟数据更新 + if (m_rightFunctionPanel) { + // 模拟随机更新敌情数据 + int enemyCount = qrand() % 10 + 1; + QStringList threatLevels = {"低", "中", "高"}; + QString threatLevel = threatLevels[qrand() % threatLevels.size()]; + + m_rightFunctionPanel->updateEnemyStats(enemyCount, threatLevel); + + SystemLogger::getInstance()->logInfo( + QString("敌情统计更新:发现 %1 个目标,威胁等级:%2") + .arg(enemyCount).arg(threatLevel) + ); + } +} + +void MainWindow::onRequestAIAnalysis() +{ + qDebug() << "Requesting AI analysis..."; + SystemLogger::getInstance()->logInfo("请求AI敌情分析"); + + // TODO: 实现AI分析功能 + // 这里应该连接到大语言模型进行敌情分析 + + // 模拟AI分析结果 + QTimer::singleShot(3000, [this]() { + QString analysisResult = "AI分析结果:当前区域敌情相对稳定,建议继续监控北侧区域,注意东南方向可疑活动。"; + SystemLogger::getInstance()->logInfo("AI分析完成:" + analysisResult); + + // 可以通过消息框或状态栏显示分析结果 + QMessageBox::information(this, "AI敌情分析", analysisResult); + }); +} + +void MainWindow::onExportReport() +{ + qDebug() << "Exporting battlefield report..."; + SystemLogger::getInstance()->logInfo("导出战场报告"); + + // TODO: 实现报告导出功能 + // 这里应该生成包含敌情统计、设备状态、任务记录等的完整报告 + + // 模拟报告导出 + QString reportPath = QString("battlefield_report_%1.pdf") + .arg(QDateTime::currentDateTime().toString("yyyyMMdd_hhmmss")); + + SystemLogger::getInstance()->logInfo("报告导出完成:" + reportPath); + QMessageBox::information(this, "报告导出", + QString("战场报告已成功导出到:\n%1").arg(reportPath)); } \ No newline at end of file