From 0a3086cc985aebe0800d04c6a1c302427bc337e3 Mon Sep 17 00:00:00 2001 From: 123 <123@example.com> Date: Wed, 18 Jun 2025 15:17:40 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=93=E6=9E=84=E5=92=8C?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Client/.promptx/pouch.json | 30 + .../qt-ui-developer/qt-ui-developer.role.md | 149 + .../.promptx/resource/project.registry.json | 35 + src/Client/CLAUDE.md | 99 + src/Client/CasualtySightPlus | Bin 392208 -> 380824 bytes src/Client/CasualtySightPlus.pro | 50 +- src/Client/DogDatabase.cpp | 194 - src/Client/DogDatabase.h | 98 - src/Client/DogDatabase.o | Bin 33904 -> 0 bytes src/Client/InjuryAnalysisUI.h | 44 - src/Client/InjuryAnalysisUI.o | Bin 57488 -> 0 bytes src/Client/InjuryDatabase.o | Bin 55320 -> 0 bytes src/Client/Makefile | 207 +- src/Client/UAVDatabase.o | Bin 33904 -> 0 bytes .../{ => build}/AndroidToolchainManager.o | Bin src/Client/build/DogDatabase.o | Bin 0 -> 33496 bytes src/Client/build/InjuryAnalysisUI.o | Bin 0 -> 56568 bytes src/Client/build/InjuryDatabase.o | Bin 0 -> 55712 bytes src/Client/build/UAVDatabase.o | Bin 0 -> 33880 bytes src/Client/build/guidingui.o | Bin 0 -> 132976 bytes src/Client/build/injurydisiplayui.o | Bin 0 -> 52768 bytes src/Client/build/main.o | Bin 0 -> 8328 bytes src/Client/build/moc_InjuryAnalysisUI.cpp | 120 + src/Client/build/moc_InjuryAnalysisUI.o | Bin 0 -> 10272 bytes src/Client/build/moc_guidingui.cpp | 160 + src/Client/build/moc_guidingui.o | Bin 0 -> 12248 bytes src/Client/build/moc_injurydisiplayui.cpp | 95 + src/Client/{ => build}/moc_injurydisiplayui.o | Bin 10336 -> 10304 bytes src/Client/{ => build}/moc_predefs.h | 12 +- src/Client/build/qrc_res.cpp | 8530 +++++++++++++++++ src/Client/{ => build}/qrc_res.o | Bin 134808 -> 134768 bytes src/Client/{ => build}/ui_InjuryAnalysisUI.h | 2 +- src/Client/{ => build}/ui_guidingui.h | 78 +- src/Client/{ => build}/ui_injurydisiplayui.h | 2 +- src/Client/guidingui.h | 76 - src/Client/guidingui.o | Bin 162232 -> 0 bytes src/Client/include/DogDatabase.h | 209 + src/Client/include/InjuryAnalysisUI.h | 126 + src/Client/{ => include}/InjuryDatabase.h | 0 src/Client/{ => include}/UAVDatabase.h | 0 src/Client/include/guidingui.h | 188 + src/Client/{ => include}/injurydisiplayui.h | 0 src/Client/injurydisiplayui.o | Bin 52640 -> 0 bytes src/Client/main.o | Bin 8336 -> 0 bytes src/Client/moc_InjuryAnalysisUI.o | Bin 10312 -> 0 bytes src/Client/moc_guidingui.o | Bin 12136 -> 0 bytes src/Client/src/DogDatabase.cpp | 200 + src/Client/{ => src}/InjuryAnalysisUI.cpp | 136 +- src/Client/{ => src}/InjuryDatabase.cpp | 0 src/Client/{ => src}/UAVDatabase.cpp | 0 src/Client/src/guidingui.cpp | 395 + .../guidingui_backup.cpp} | 258 +- src/Client/{ => src}/injurydisiplayui.cpp | 0 src/Client/{ => src}/main.cpp | 0 src/Client/{ => src}/moc_InjuryAnalysisUI.cpp | 0 src/Client/{ => src}/moc_guidingui.cpp | 0 src/Client/{ => src}/moc_injurydisiplayui.cpp | 0 src/Client/{ => src}/qrc_res.cpp | 0 src/Client/{ => src}/robotlistdialog.cpp | 0 src/Client/tasks/todo.md | 101 - src/Client/{ => ui}/InjuryAnalysisUI.ui | 0 src/Client/{ => ui}/guidingui.ui | 0 src/Client/{ => ui}/injurydisiplayui.ui | 0 src/Client/{ => ui}/robotlistdialog.ui | 0 src/Client/代码规范.md | 780 ++ 65 files changed, 11512 insertions(+), 862 deletions(-) create mode 100644 src/Client/.promptx/pouch.json create mode 100644 src/Client/.promptx/resource/domain/qt-ui-developer/qt-ui-developer.role.md create mode 100644 src/Client/.promptx/resource/project.registry.json create mode 100644 src/Client/CLAUDE.md mode change 100644 => 100755 src/Client/CasualtySightPlus mode change 100644 => 100755 src/Client/CasualtySightPlus.pro delete mode 100644 src/Client/DogDatabase.cpp delete mode 100644 src/Client/DogDatabase.h delete mode 100644 src/Client/DogDatabase.o delete mode 100644 src/Client/InjuryAnalysisUI.h delete mode 100644 src/Client/InjuryAnalysisUI.o delete mode 100644 src/Client/InjuryDatabase.o delete mode 100644 src/Client/UAVDatabase.o rename src/Client/{ => build}/AndroidToolchainManager.o (100%) create mode 100644 src/Client/build/DogDatabase.o create mode 100644 src/Client/build/InjuryAnalysisUI.o create mode 100644 src/Client/build/InjuryDatabase.o create mode 100644 src/Client/build/UAVDatabase.o create mode 100644 src/Client/build/guidingui.o create mode 100644 src/Client/build/injurydisiplayui.o create mode 100644 src/Client/build/main.o create mode 100644 src/Client/build/moc_InjuryAnalysisUI.cpp create mode 100644 src/Client/build/moc_InjuryAnalysisUI.o create mode 100644 src/Client/build/moc_guidingui.cpp create mode 100644 src/Client/build/moc_guidingui.o create mode 100644 src/Client/build/moc_injurydisiplayui.cpp rename src/Client/{ => build}/moc_injurydisiplayui.o (86%) rename src/Client/{ => build}/moc_predefs.h (99%) create mode 100644 src/Client/build/qrc_res.cpp rename src/Client/{ => build}/qrc_res.o (97%) rename src/Client/{ => build}/ui_InjuryAnalysisUI.h (99%) rename src/Client/{ => build}/ui_guidingui.h (91%) rename src/Client/{ => build}/ui_injurydisiplayui.h (95%) delete mode 100644 src/Client/guidingui.h delete mode 100644 src/Client/guidingui.o create mode 100644 src/Client/include/DogDatabase.h create mode 100644 src/Client/include/InjuryAnalysisUI.h rename src/Client/{ => include}/InjuryDatabase.h (100%) rename src/Client/{ => include}/UAVDatabase.h (100%) create mode 100644 src/Client/include/guidingui.h rename src/Client/{ => include}/injurydisiplayui.h (100%) delete mode 100644 src/Client/injurydisiplayui.o delete mode 100644 src/Client/main.o delete mode 100644 src/Client/moc_InjuryAnalysisUI.o delete mode 100644 src/Client/moc_guidingui.o create mode 100644 src/Client/src/DogDatabase.cpp rename src/Client/{ => src}/InjuryAnalysisUI.cpp (57%) rename src/Client/{ => src}/InjuryDatabase.cpp (100%) rename src/Client/{ => src}/UAVDatabase.cpp (100%) create mode 100644 src/Client/src/guidingui.cpp rename src/Client/{guidingui.cpp => src/guidingui_backup.cpp} (74%) rename src/Client/{ => src}/injurydisiplayui.cpp (100%) rename src/Client/{ => src}/main.cpp (100%) rename src/Client/{ => src}/moc_InjuryAnalysisUI.cpp (100%) rename src/Client/{ => src}/moc_guidingui.cpp (100%) rename src/Client/{ => src}/moc_injurydisiplayui.cpp (100%) rename src/Client/{ => src}/qrc_res.cpp (100%) rename src/Client/{ => src}/robotlistdialog.cpp (100%) delete mode 100644 src/Client/tasks/todo.md rename src/Client/{ => ui}/InjuryAnalysisUI.ui (100%) rename src/Client/{ => ui}/guidingui.ui (100%) rename src/Client/{ => ui}/injurydisiplayui.ui (100%) rename src/Client/{ => ui}/robotlistdialog.ui (100%) create mode 100644 src/Client/代码规范.md diff --git a/src/Client/.promptx/pouch.json b/src/Client/.promptx/pouch.json new file mode 100644 index 0000000..5ce8732 --- /dev/null +++ b/src/Client/.promptx/pouch.json @@ -0,0 +1,30 @@ +{ + "currentState": "role_activated_with_memory", + "stateHistory": [ + { + "from": "initial", + "command": "init", + "timestamp": "2025-06-18T07:16:22.569Z", + "args": [ + { + "workingDirectory": "/home/hzk/Software_Architecture/src/Client" + } + ] + }, + { + "from": "initialized", + "command": "hello", + "timestamp": "2025-06-18T07:16:33.646Z", + "args": [] + }, + { + "from": "role_discovery", + "command": "action", + "timestamp": "2025-06-18T07:16:42.662Z", + "args": [ + "qt-ui-developer" + ] + } + ], + "lastUpdated": "2025-06-18T07:16:42.673Z" +} diff --git a/src/Client/.promptx/resource/domain/qt-ui-developer/qt-ui-developer.role.md b/src/Client/.promptx/resource/domain/qt-ui-developer/qt-ui-developer.role.md new file mode 100644 index 0000000..f3051b7 --- /dev/null +++ b/src/Client/.promptx/resource/domain/qt-ui-developer/qt-ui-developer.role.md @@ -0,0 +1,149 @@ + + + @!thought://remember + @!thought://recall + + # Qt界面设计及开发专家思维模式 + ## 核心思维特征 + - **用户体验导向**:始终以用户交互体验为设计核心,关注界面的易用性和美观性 + - **技术实现思维**:具备深度的Qt技术理解,能将设计需求转化为高效的代码实现 + - **系统性设计思维**:从整体架构角度思考界面设计,确保组件间的协调统一 + - **性能优化意识**:重视界面渲染性能和内存管理,追求流畅的用户体验 + - **跨平台适配思维**:考虑不同平台和分辨率下的界面适配问题 + + ## 认知偏好 + - **视觉优先**:优先考虑界面的视觉效果和布局合理性 + - **代码质量**:追求清晰、可维护的Qt代码结构 + - **组件化思维**:倾向于创建可复用的UI组件和自定义控件 + - **响应式设计**:关注界面在不同窗口大小下的自适应表现 + + + + # Qt界面设计及开发执行原则 + + ## 设计阶段原则 + - **需求分析优先**:深入理解业务需求,明确界面功能和交互逻辑 + - **用户研究驱动**:基于目标用户群体的使用习惯设计界面 + - **原型先行**:通过线框图或原型验证设计概念 + - **设计系统建立**:制定统一的颜色、字体、间距等视觉规范 + + ## 开发阶段原则 + - **模块化开发**:将复杂界面拆分为独立的功能模块 + - **MVC架构遵循**:严格分离界面逻辑和业务逻辑 + - **信号槽机制**:合理使用Qt信号槽实现组件间通信 + - **资源管理规范**:统一管理图标、样式表等资源文件 + + ## 代码质量原则 + - **命名规范**:使用清晰的类名、变量名和函数名 + - **注释完整**:为复杂的界面逻辑提供详细注释 + - **异常处理**:妥善处理界面操作中的异常情况 + - **内存管理**:正确管理Qt对象的生命周期,避免内存泄漏 + + ## 测试验证原则 + - **多平台测试**:在目标平台上验证界面表现 + - **响应性测试**:测试界面在不同分辨率下的适配 + - **交互测试**:验证所有用户交互功能的正确性 + - **性能测试**:监控界面渲染性能和资源占用 + + + + # Qt界面设计及开发专业知识体系 + + ## Qt框架核心技术 + ### Qt Widgets体系 + - **基础控件**:QPushButton、QLabel、QLineEdit、QTextEdit等常用控件 + - **布局管理**:QHBoxLayout、QVBoxLayout、QGridLayout、QFormLayout + - **容器控件**:QWidget、QMainWindow、QDialog、QFrame + - **高级控件**:QTableWidget、QTreeWidget、QListWidget、QTabWidget + - **自定义控件**:继承QWidget创建专用控件,重写paintEvent实现自定义绘制 + + ### Qt样式系统 + - **QSS样式表**:CSS-like语法定义控件外观 + - **样式选择器**:类选择器、ID选择器、状态选择器 + - **样式属性**:color、background、border、font等常用属性 + - **动态样式**:通过代码动态修改控件样式 + + ### 信号槽机制 + - **信号定义**:使用signals关键字定义自定义信号 + - **槽函数**:使用slots关键字或普通成员函数作为槽 + - **连接方式**:connect函数的多种重载形式 + - **信号传参**:信号携带参数的处理方式 + + ## QML技术栈 + ### QML基础语法 + - **QML元素**:Rectangle、Text、Image、Button等基础元素 + - **属性绑定**:动态属性绑定和属性动画 + - **JavaScript集成**:在QML中使用JavaScript逻辑 + - **组件化开发**:创建可复用的QML组件 + + ### Qt Quick控件 + - **Qt Quick Controls 2**:现代化的控件库 + - **主题定制**:Material、Universal等主题的定制 + - **布局管理**:RowLayout、ColumnLayout、GridLayout + - **列表视图**:ListView、GridView等数据展示组件 + + ### C++与QML交互 + - **qmlRegisterType**:注册C++类型到QML + - **Q_PROPERTY**:定义QML可访问的属性 + - **Q_INVOKABLE**:定义QML可调用的方法 + - **上下文属性**:通过setContextProperty传递数据 + + ## 界面设计原理 + ### 用户体验设计 + - **交互设计**:用户操作流程和反馈机制设计 + - **信息架构**:界面信息的组织和层次结构 + - **可用性原则**:易学、易用、高效、容错的设计原则 + - **可访问性**:考虑不同用户群体的使用需求 + + ### 视觉设计 + - **色彩理论**:颜色搭配、对比度、色彩心理学 + - **字体设计**:字体选择、字号层次、阅读性优化 + - **布局原理**:网格系统、视觉平衡、信息层次 + - **图标设计**:图标风格统一、语义清晰、尺寸适配 + + ## 高级技术应用 + ### 图形渲染 + - **QPainter绘图**:自定义绘制复杂图形和图表 + - **Graphics View框架**:处理大量图形元素的场景 + - **OpenGL集成**:高性能3D图形渲染 + - **图像处理**:QPixmap、QImage的图像操作 + + ### 多媒体集成 + - **Qt Multimedia**:音频、视频播放功能 + - **摄像头集成**:QCamera的使用和图像捕获 + - **地图集成**:Qt Location和第三方地图服务 + - **Web集成**:QWebEngineView嵌入网页内容 + + ### 数据可视化 + - **Qt Charts**:绘制各类统计图表 + - **自定义图表**:基于QPainter实现专用图表 + - **实时数据展示**:动态更新的数据可视化 + - **交互式图表**:支持用户交互的图表控件 + + ## 开发工具和调试 + ### Qt开发环境 + - **Qt Creator**:集成开发环境的高效使用 + - **Qt Designer**:可视化界面设计工具 + - **qmake/CMake**:项目构建和依赖管理 + - **Qt Assistant**:文档查阅和API参考 + + ### 调试和性能优化 + - **Qt调试器**:界面和逻辑问题的调试方法 + - **内存分析**:检测内存泄漏和性能瓶颈 + - **QML调试**:QML Debugger的使用技巧 + - **性能分析**:QML Profiler和界面渲染优化 + + ## 实战经验总结 + ### 常见问题解决 + - **布局问题**:控件大小、对齐、间距的常见问题 + - **事件处理**:鼠标、键盘、窗口事件的处理技巧 + - **跨平台适配**:Windows、Linux、macOS的界面差异处理 + - **高DPI适配**:高分辨率屏幕的界面缩放问题 + + ### 最佳实践模式 + - **MVVM模式**:Model-View-ViewModel在Qt中的实现 + - **插件架构**:可扩展的界面插件系统设计 + - **国际化支持**:多语言界面的设计和实现 + - **主题切换**:动态主题切换的技术方案 + + \ No newline at end of file diff --git a/src/Client/.promptx/resource/project.registry.json b/src/Client/.promptx/resource/project.registry.json new file mode 100644 index 0000000..ad6b77f --- /dev/null +++ b/src/Client/.promptx/resource/project.registry.json @@ -0,0 +1,35 @@ +{ + "version": "2.0.0", + "source": "project", + "metadata": { + "version": "2.0.0", + "description": "project 级资源注册表", + "createdAt": "2025-06-18T07:16:22.573Z", + "updatedAt": "2025-06-18T07:16:22.575Z", + "resourceCount": 1 + }, + "resources": [ + { + "id": "qt-ui-developer", + "source": "project", + "protocol": "role", + "name": "Qt Ui Developer 角色", + "description": "专业角色,提供特定领域的专业能力", + "reference": "@project://.promptx/resource/domain/qt-ui-developer/qt-ui-developer.role.md", + "metadata": { + "createdAt": "2025-06-18T07:16:22.574Z", + "updatedAt": "2025-06-18T07:16:22.574Z", + "scannedAt": "2025-06-18T07:16:22.574Z" + } + } + ], + "stats": { + "totalResources": 1, + "byProtocol": { + "role": 1 + }, + "bySource": { + "project": 1 + } + } +} diff --git a/src/Client/CLAUDE.md b/src/Client/CLAUDE.md new file mode 100644 index 0000000..7a07a8b --- /dev/null +++ b/src/Client/CLAUDE.md @@ -0,0 +1,99 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +CasualtySightPlus is a Qt 5.15 C++ battlefield exploration and casualty management system. It combines desktop GUI, web-based mapping, and QML interfaces to manage UAVs (drones), ground robots, and casualty information in tactical scenarios. + +## Build Commands + +### Standard Build +```bash +qmake CasualtySightPlus.pro +make +``` + +### Clean Build +```bash +make clean +qmake CasualtySightPlus.pro +make +``` + +### Install +```bash +make install # Installs to /opt/CasualtySightPlus/bin/ +``` + +## Architecture Overview + +### Core Components +- **GuidingUI**: Main control interface for robot/UAV management and battlefield exploration +- **InjuryAnalysisUI**: Casualty data analysis with Qt Charts visualization +- **InjuryDisplayUI**: Geographic casualty display using QWebEngineView + +### Database Layer +Three singleton database managers: +- **InjuryDatabase**: Casualty records (id, rank, coordinates, flag) +- **UAVDatabase**: Drone fleet management (id, state, IP, port, coordinates) +- **DogDatabase**: Ground robot management (id, state, IP, port, coordinates) + +### UI Architecture +- **Traditional Qt Widgets**: Main application framework +- **QML Integration**: Modern map interfaces (MAP.qml, MAP2.qml, MAP3.qml) +- **Web Integration**: HTML/AMap-based mapping (res/html/map.html) + +## Key Technologies + +### Qt Modules Used +- Core modules: `core gui sql charts` +- Location: `positioning location quickwidgets` +- Web: `webenginewidgets webchannel` +- Media: `multimedia multimediawidgets` + +### External Dependencies +- **AMap (高德地图)**: Chinese mapping service integration +- **Face Recognition**: External process integration for tracking +- **Qt Charts**: Statistical visualization +- **SQLite**: Database backend + +## Resource Management + +Assets are managed through Qt Resource System: +- **Images**: `/image` prefix - military icons, UI elements, status indicators +- **QML**: `/qml` prefix - interactive map components +- **Web**: `/html` prefix - HTML mapping interfaces + +## Development Notes + +### File Structure +- **Source Files**: All `.cpp` files in `src/` directory +- **Header Files**: All `.h` files in `include/` directory +- **UI Files**: All `.ui` files in `ui/` directory - define widget layouts +- **Build Artifacts**: All generated files in `build/` directory +- **Resources**: `res.qrc` contains all embedded assets +- **Generated Files**: `moc_*.cpp`, `ui_*.h`, and object files auto-generated in `build/` + +### Database Pattern +All database classes follow singleton pattern with standard CRUD operations. Access through static instance methods. + +### Coordinate System +Application uses longitude/latitude coordinates throughout. Both QML and web components expect geographic coordinates. + +### Build Artifacts +- **Object Files**: `.o` files generated during compilation +- **MOC Files**: `moc_*.cpp` files for Qt meta-object system +- **UI Headers**: `ui_*.h` files generated from `.ui` files +- **Resource Code**: `qrc_*.cpp` generated from `.qrc` files + +## Testing + +No explicit test framework detected. Manual testing through GUI interaction. + +## Deployment + +Application configured for: +- **Primary**: Linux x86_64 desktop +- **Secondary**: Android (AndroidManifest.xml present) +- **Installation**: System-wide deployment to `/opt/CasualtySightPlus/` \ No newline at end of file diff --git a/src/Client/CasualtySightPlus b/src/Client/CasualtySightPlus old mode 100644 new mode 100755 index d5e554a4ad39d66b51037ccb08235c4c315705e6..fdf3199efc0176dd35726a012642fadcc07ea7a0 GIT binary patch delta 159617 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%0DutT55C{d6swL3Kc!fFwjgDWQg74w!g1f?O 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 delta 173068 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 N<8RP&ibePG{{}KYdAR@p diff --git a/src/Client/CasualtySightPlus.pro b/src/Client/CasualtySightPlus.pro old mode 100644 new mode 100755 index 4179a09..63454b4 --- a/src/Client/CasualtySightPlus.pro +++ b/src/Client/CasualtySightPlus.pro @@ -1,40 +1,46 @@ -QT += core gui -QT += core gui quickwidgets positioning location -QT += multimedia -QT += multimediawidgets +QT += core gui widgets quickwidgets positioning +QT += multimedia multimediawidgets QT += webenginewidgets webchannel -QT += sql -QT += charts +QT += sql charts greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++17 +# Include paths +INCLUDEPATH += include + +# Build directories +OBJECTS_DIR = build +MOC_DIR = build +UI_DIR = build +RCC_DIR = build + # You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ - DogDatabase.cpp \ - InjuryAnalysisUI.cpp \ - InjuryDatabase.cpp \ - UAVDatabase.cpp \ - injurydisiplayui.cpp \ - main.cpp \ - guidingui.cpp + src/DogDatabase.cpp \ + src/InjuryAnalysisUI.cpp \ + src/InjuryDatabase.cpp \ + src/UAVDatabase.cpp \ + src/injurydisiplayui.cpp \ + src/main.cpp \ + src/guidingui.cpp HEADERS += \ - DogDatabase.h \ - InjuryAnalysisUI.h \ - InjuryDatabase.h \ - UAVDatabase.h \ - guidingui.h \ - injurydisiplayui.h + include/DogDatabase.h \ + include/InjuryAnalysisUI.h \ + include/InjuryDatabase.h \ + include/UAVDatabase.h \ + include/guidingui.h \ + include/injurydisiplayui.h FORMS += \ - InjuryAnalysisUI.ui \ - guidingui.ui \ - injurydisiplayui.ui + ui/InjuryAnalysisUI.ui \ + ui/guidingui.ui \ + ui/injurydisiplayui.ui # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin diff --git a/src/Client/DogDatabase.cpp b/src/Client/DogDatabase.cpp deleted file mode 100644 index d3a89fc..0000000 --- a/src/Client/DogDatabase.cpp +++ /dev/null @@ -1,194 +0,0 @@ -#include "DogDatabase.h" - -DogDatabase *DogDatabase::getInstance() -{ - static DogDatabase db; - return &db; -} - -DogDatabase::~DogDatabase() -{ - close(); -} - -DogDatabase::DogDatabase() -{ - m_sqlDb = QSqlDatabase::addDatabase("QMYSQL"); -} - -//添加记录 -bool DogDatabase::add(const Dog &data) -{ - if(open("fly_land_database","root","hzk200407140238")) - { - beginAddFiled("dogdatabase"); - addFiled("id"); - addFiled("state"); - addFiled("ip"); - addFiled("port"); - addFiled("lon"); - addFiled("lat"); - endAddFiled(); - - beginAddRow(); - addValue(data.id); - addValue(data.state); - addValue(data.ip); - addValue(data.port); - addValue(data.lon); - addValue(data.lat); - endAddRow(); - - m_valueSql = m_valueSql.left(m_valueSql.length()-1); - QString sql; - sql = m_headerSql + m_valueSql; - return exec(sql); - } - close(); - return false; -} - -//查询位置信息的记录 -Point DogDatabase::ReturnUAVPosition(QString id) -{ - Point position; - position.lon = 0; - position.lat = 0; - - if(open("fly_land_database","root","hzk200407140238")) - { - QSqlQuery query(m_sqlDb); - - QString strQuery; - strQuery = "SELECT lon, lat FROM "; - strQuery += "dogdatabase"; - strQuery += " WHERE id = "; - strQuery += id; - - qDebug()< -#include -#include -#include -#include -#include -#include -#include "UAVDatabase.h" - -using namespace std; - - -struct Dog -{ - QString id; - int state; - QString ip; - int port; - double lon; - double lat; -}; - - -class DogDatabase -{ - // Q_OBJECT宏用于提供Qt信号槽和元对象系统服务 - // 它必须限定为私有访问权限 - //Q_OBJECT - -public: - static DogDatabase *getInstance(); - DogDatabase(); - ~DogDatabase(); - - Dog data; - - //返回状态信息 - int giveInfo(QString id); - //添加数据记录 - bool add(const Dog &data); - //查询位置信息数据 - Point ReturnUAVPosition( QString id); - - - -private: - //打开 - bool open(const QString &dbName,const QString &userName = QString(),const QString &passwd = QString()); - //关闭 - void close(); - //开始添加字段 - void beginAddFiled(const QString &tableName); - - //添加字段 - void addFiled(const QString &filedName); - - //结束添加字段 - void endAddFiled(); - - //开始添加行 - void beginAddRow(); - - //添加字段值 - void addValue(const QVariant &value); - - //结束添加行 - void endAddRow(); - - //执行 - bool exec(const QString &sql); - - -private: - //数据库 - QSqlDatabase m_sqlDb; - - //表名 - QString m_tableName; - - //字段名 - QStringList m_fieldName; - - //头sql - QString m_headerSql; - - //值sql - QString m_valueSql; - - //已添加row数 - int m_fieldAdd = 0; - -}; - - -#endif // DOGDATABASE_H diff --git a/src/Client/DogDatabase.o b/src/Client/DogDatabase.o deleted file mode 100644 index 221c01c6c0056ddf286b897e6f47af1d81302609..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33904 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 z z@|)$YaW~_re+J#(&p7HojqZ0aj=I!$%r7vG@@Lb1J_t&HQC_`Itk$;} zjfeWad9o(2%DIGb)UW`Y$1S)-!p$RNqOff6o9J$~Td``gci?qkfg&PNoOt z*O2@hjN@ei?ThVa9OXBV{0KYTK)`6!ul{`$wcbOH@=21Pz~qI>6Co19G{#Z>W|9vx zj`~%3qKu=wdLC2%jtT0fEkL*eeVV*_PJ5nlOmjEc^O?rg_trKVoT^+8lbv41F;0EQ zJeF~^^EV`~))gp=A1%+;FwYb1XgPz7C`QG8|OejZV?DgQ$8D!pD_WxrCR z`edb+zOYS76q2A9&O_l)=@p*=Ow_-Y{zbCC9O8MAx^h>&BLX*;a;XE7;-To(l z<;s6aF+@O6|L%yq%g+B%h{%=yeU$$aO6Y|%&g**qhk)hEzZ72pf$)JmrT*&W$M{_N zyCO2lR!ZrG^T}}N`HzOoF@L*Of8O%|LQwMZF8h8IB+ixp9?D;hGcPE>S6-Ap#b;9f zr78nD7gPS|UwA-UF{pDLrI$4Qw}H~9iM&$j6kh^hFx+UxHx^TRuM(uQvR`3b&!bK~ z{TfQI_7jx6p1vCri~3Unbbg!auad^E7dQ@Sm0s0fuDnr&iH;G%5*oj!!!_2io*v(y o)qOW0 -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE -namespace Ui { -class InjuryAnalysisUI; //声明ui命名空间下的类 -} -QT_END_NAMESPACE - -class InjuryAnalysisUI : public QWidget -{ - // Q_OBJECT宏用于提供Qt信号槽和元对象系统服务 - // 它必须限定为私有访问权限 - Q_OBJECT - -public: - InjuryAnalysisUI(QWidget *parent = nullptr); - ~InjuryAnalysisUI(); - QList result; - -private: - void createBarChart(); - void updateBarChart(); - -private slots: - void on_searchButton_clicked(); - -private: - // 创建Ui::InjuryAnalysisUI类型的指针,用于操作ui界面及其控件 - Ui::InjuryAnalysisUI *ui; - QChart *chart; - QChartView *chartView; -}; - -#endif // INJURYANALYSISUI_H diff --git a/src/Client/InjuryAnalysisUI.o b/src/Client/InjuryAnalysisUI.o deleted file mode 100644 index ca25db8aedffdd33ba6006a057256fb7d562b207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57488 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 Tnfs*6zxQdKW22*-oBzK72$-Qv diff --git a/src/Client/Makefile b/src/Client/Makefile index 0a7ecc8..2beab72 100644 --- a/src/Client/Makefile +++ b/src/Client/Makefile @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: CasualtySightPlus -# Generated by qmake (3.1) (Qt 5.15.13) +# Generated by qmake (3.1) (Qt 5.15.15) # Project: CasualtySightPlus.pro # Template: app # Command: /usr/lib/qt5/bin/qmake -o Makefile CasualtySightPlus.pro @@ -14,10 +14,10 @@ EQ = = CC = gcc CXX = g++ -DEFINES = -DQT_NO_DEBUG -DQT_QUICKWIDGETS_LIB -DQT_LOCATION_LIB -DQT_POSITIONINGQUICK_LIB -DQT_WEBENGINEWIDGETS_LIB -DQT_WEBENGINECORE_LIB -DQT_QUICK_LIB -DQT_MULTIMEDIAWIDGETS_LIB -DQT_PRINTSUPPORT_LIB -DQT_CHARTS_LIB -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_SQL_LIB -DQT_CORE_LIB +DEFINES = -DQT_NO_DEBUG -DQT_QUICKWIDGETS_LIB -DQT_MULTIMEDIAWIDGETS_LIB -DQT_WEBENGINEWIDGETS_LIB -DQT_PRINTSUPPORT_LIB -DQT_CHARTS_LIB -DQT_WIDGETS_LIB -DQT_WEBENGINECORE_LIB -DQT_QUICK_LIB -DQT_MULTIMEDIA_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_SQL_LIB -DQT_CORE_LIB CFLAGS = -pipe -O2 -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) CXXFLAGS = -pipe -O2 -std=gnu++1z -Wall -Wextra -D_REENTRANT -fPIC $(DEFINES) -INCPATH = -I. -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtQuickWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtLocation -I/usr/include/x86_64-linux-gnu/qt5/QtPositioningQuick -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtMultimediaWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtCharts -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ +INCPATH = -I. -Iinclude -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtQuickWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimediaWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtCharts -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -Ibuild -Ibuild -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ QMAKE = /usr/lib/qt5/bin/qmake DEL_FILE = rm -f CHK_DIR_EXISTS= test -d @@ -37,10 +37,10 @@ MOVE = mv -f TAR = tar -cf COMPRESS = gzip -9f DISTNAME = CasualtySightPlus1.0.0 -DISTDIR = /home/hzk/Enjoy/src/Client/.tmp/CasualtySightPlus1.0.0 +DISTDIR = /home/hzk/Software_Architecture/src/Client/build/CasualtySightPlus1.0.0 LINK = g++ LFLAGS = -Wl,-O1 -Wl,-rpath-link,/usr/lib/x86_64-linux-gnu -LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5QuickWidgets.so /usr/lib/x86_64-linux-gnu/libQt5Location.so /usr/lib/x86_64-linux-gnu/libQt5PositioningQuick.so /usr/lib/x86_64-linux-gnu/libQt5WebEngineWidgets.so /usr/lib/x86_64-linux-gnu/libQt5WebEngineCore.so /usr/lib/x86_64-linux-gnu/libQt5Quick.so /usr/lib/x86_64-linux-gnu/libQt5MultimediaWidgets.so /usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so /usr/lib/x86_64-linux-gnu/libQt5Charts.so /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5QmlModels.so /usr/lib/x86_64-linux-gnu/libQt5WebChannel.so /usr/lib/x86_64-linux-gnu/libQt5Qml.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Positioning.so /usr/lib/x86_64-linux-gnu/libQt5Sql.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread +LIBS = $(SUBLIBS) /usr/lib/x86_64-linux-gnu/libQt5QuickWidgets.so /usr/lib/x86_64-linux-gnu/libQt5MultimediaWidgets.so /usr/lib/x86_64-linux-gnu/libQt5WebEngineWidgets.so /usr/lib/x86_64-linux-gnu/libQt5PrintSupport.so /usr/lib/x86_64-linux-gnu/libQt5Charts.so /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5WebEngineCore.so /usr/lib/x86_64-linux-gnu/libQt5Quick.so /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5QmlModels.so /usr/lib/x86_64-linux-gnu/libQt5WebChannel.so /usr/lib/x86_64-linux-gnu/libQt5Qml.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5Positioning.so /usr/lib/x86_64-linux-gnu/libQt5Sql.so /usr/lib/x86_64-linux-gnu/libQt5Core.so -lGL -lpthread AR = ar cqs RANLIB = SED = sed @@ -48,31 +48,31 @@ STRIP = strip ####### Output directory -OBJECTS_DIR = ./ +OBJECTS_DIR = build/ ####### Files -SOURCES = DogDatabase.cpp \ - InjuryAnalysisUI.cpp \ - InjuryDatabase.cpp \ - UAVDatabase.cpp \ - injurydisiplayui.cpp \ - main.cpp \ - guidingui.cpp qrc_res.cpp \ - moc_InjuryAnalysisUI.cpp \ - moc_guidingui.cpp \ - moc_injurydisiplayui.cpp -OBJECTS = DogDatabase.o \ - InjuryAnalysisUI.o \ - InjuryDatabase.o \ - UAVDatabase.o \ - injurydisiplayui.o \ - main.o \ - guidingui.o \ - qrc_res.o \ - moc_InjuryAnalysisUI.o \ - moc_guidingui.o \ - moc_injurydisiplayui.o +SOURCES = src/DogDatabase.cpp \ + src/InjuryAnalysisUI.cpp \ + src/InjuryDatabase.cpp \ + src/UAVDatabase.cpp \ + src/injurydisiplayui.cpp \ + src/main.cpp \ + src/guidingui.cpp build/qrc_res.cpp \ + build/moc_InjuryAnalysisUI.cpp \ + build/moc_guidingui.cpp \ + build/moc_injurydisiplayui.cpp +OBJECTS = build/DogDatabase.o \ + build/InjuryAnalysisUI.o \ + build/InjuryDatabase.o \ + build/UAVDatabase.o \ + build/injurydisiplayui.o \ + build/main.o \ + build/guidingui.o \ + build/qrc_res.o \ + build/moc_InjuryAnalysisUI.o \ + build/moc_guidingui.o \ + build/moc_injurydisiplayui.o DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/unix.conf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/linux.conf \ @@ -105,7 +105,6 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_location.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ @@ -166,18 +165,18 @@ DIST = /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/exceptions.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/yacc.prf \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/lex.prf \ - CasualtySightPlus.pro DogDatabase.h \ - InjuryAnalysisUI.h \ - InjuryDatabase.h \ - UAVDatabase.h \ - guidingui.h \ - injurydisiplayui.h DogDatabase.cpp \ - InjuryAnalysisUI.cpp \ - InjuryDatabase.cpp \ - UAVDatabase.cpp \ - injurydisiplayui.cpp \ - main.cpp \ - guidingui.cpp + CasualtySightPlus.pro include/DogDatabase.h \ + include/InjuryAnalysisUI.h \ + include/InjuryDatabase.h \ + include/UAVDatabase.h \ + include/guidingui.h \ + include/injurydisiplayui.h src/DogDatabase.cpp \ + src/InjuryAnalysisUI.cpp \ + src/InjuryDatabase.cpp \ + src/UAVDatabase.cpp \ + src/injurydisiplayui.cpp \ + src/main.cpp \ + src/guidingui.cpp QMAKE_TARGET = CasualtySightPlus DESTDIR = TARGET = CasualtySightPlus @@ -186,7 +185,7 @@ TARGET = CasualtySightPlus first: all ####### Build rules -CasualtySightPlus: ui_InjuryAnalysisUI.h ui_guidingui.h ui_injurydisiplayui.h $(OBJECTS) +CasualtySightPlus: build/ui_InjuryAnalysisUI.h build/ui_guidingui.h build/ui_injurydisiplayui.h $(OBJECTS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS) Makefile: CasualtySightPlus.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/qmake.conf /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/spec_pre.prf \ @@ -221,7 +220,6 @@ Makefile: CasualtySightPlus.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \ - /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_location.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri \ @@ -317,7 +315,6 @@ Makefile: CasualtySightPlus.pro /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++/ /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_input_support_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_kms_support_private.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri: -/usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_location.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimedia.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/modules/qt_lib_network.pri: @@ -396,9 +393,9 @@ distdir: FORCE $(COPY_FILE) --parents $(DIST) $(DISTDIR)/ $(COPY_FILE) --parents res.qrc $(DISTDIR)/ $(COPY_FILE) --parents /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/ - $(COPY_FILE) --parents DogDatabase.h InjuryAnalysisUI.h InjuryDatabase.h UAVDatabase.h guidingui.h injurydisiplayui.h $(DISTDIR)/ - $(COPY_FILE) --parents DogDatabase.cpp InjuryAnalysisUI.cpp InjuryDatabase.cpp UAVDatabase.cpp injurydisiplayui.cpp main.cpp guidingui.cpp $(DISTDIR)/ - $(COPY_FILE) --parents InjuryAnalysisUI.ui guidingui.ui injurydisiplayui.ui $(DISTDIR)/ + $(COPY_FILE) --parents include/DogDatabase.h include/InjuryAnalysisUI.h include/InjuryDatabase.h include/UAVDatabase.h include/guidingui.h include/injurydisiplayui.h $(DISTDIR)/ + $(COPY_FILE) --parents src/DogDatabase.cpp src/InjuryAnalysisUI.cpp src/InjuryDatabase.cpp src/UAVDatabase.cpp src/injurydisiplayui.cpp src/main.cpp src/guidingui.cpp $(DISTDIR)/ + $(COPY_FILE) --parents ui/InjuryAnalysisUI.ui ui/guidingui.ui ui/injurydisiplayui.ui $(DISTDIR)/ clean: compiler_clean @@ -422,10 +419,10 @@ check: first benchmark: first -compiler_rcc_make_all: qrc_res.cpp +compiler_rcc_make_all: build/qrc_res.cpp compiler_rcc_clean: - -$(DEL_FILE) qrc_res.cpp -qrc_res.cpp: res.qrc \ + -$(DEL_FILE) build/qrc_res.cpp +build/qrc_res.cpp: res.qrc \ /usr/lib/qt5/bin/rcc \ res/qml/MAP2.qml \ res/qml/MAP.qml \ @@ -454,51 +451,51 @@ qrc_res.cpp: res.qrc \ res/image/soldier.png \ res/image/MapBackGround.png \ res/image/logo.png - /usr/lib/qt5/bin/rcc -name res res.qrc -o qrc_res.cpp + /usr/lib/qt5/bin/rcc -name res res.qrc -o build/qrc_res.cpp -compiler_moc_predefs_make_all: moc_predefs.h +compiler_moc_predefs_make_all: build/moc_predefs.h compiler_moc_predefs_clean: - -$(DEL_FILE) moc_predefs.h -moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp - g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + -$(DEL_FILE) build/moc_predefs.h +build/moc_predefs.h: /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp + g++ -pipe -O2 -std=gnu++1z -Wall -Wextra -dM -E -o build/moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp -compiler_moc_header_make_all: moc_InjuryAnalysisUI.cpp moc_guidingui.cpp moc_injurydisiplayui.cpp +compiler_moc_header_make_all: build/moc_InjuryAnalysisUI.cpp build/moc_guidingui.cpp build/moc_injurydisiplayui.cpp compiler_moc_header_clean: - -$(DEL_FILE) moc_InjuryAnalysisUI.cpp moc_guidingui.cpp moc_injurydisiplayui.cpp -moc_InjuryAnalysisUI.cpp: InjuryAnalysisUI.h \ - InjuryDatabase.h \ - moc_predefs.h \ + -$(DEL_FILE) build/moc_InjuryAnalysisUI.cpp build/moc_guidingui.cpp build/moc_injurydisiplayui.cpp +build/moc_InjuryAnalysisUI.cpp: include/InjuryAnalysisUI.h \ + include/InjuryDatabase.h \ + build/moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/hzk/Enjoy/src/Client/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/hzk/Enjoy/src/Client -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtQuickWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtLocation -I/usr/include/x86_64-linux-gnu/qt5/QtPositioningQuick -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtMultimediaWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtCharts -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include InjuryAnalysisUI.h -o moc_InjuryAnalysisUI.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/hzk/Software_Architecture/src/Client/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/hzk/Software_Architecture/src/Client -I/home/hzk/Software_Architecture/src/Client/include -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtQuickWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimediaWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtCharts -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include include/InjuryAnalysisUI.h -o build/moc_InjuryAnalysisUI.cpp -moc_guidingui.cpp: guidingui.h \ - moc_predefs.h \ +build/moc_guidingui.cpp: include/guidingui.h \ + build/moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/hzk/Enjoy/src/Client/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/hzk/Enjoy/src/Client -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtQuickWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtLocation -I/usr/include/x86_64-linux-gnu/qt5/QtPositioningQuick -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtMultimediaWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtCharts -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include guidingui.h -o moc_guidingui.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/hzk/Software_Architecture/src/Client/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/hzk/Software_Architecture/src/Client -I/home/hzk/Software_Architecture/src/Client/include -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtQuickWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimediaWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtCharts -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include include/guidingui.h -o build/moc_guidingui.cpp -moc_injurydisiplayui.cpp: injurydisiplayui.h \ - moc_predefs.h \ +build/moc_injurydisiplayui.cpp: include/injurydisiplayui.h \ + build/moc_predefs.h \ /usr/lib/qt5/bin/moc - /usr/lib/qt5/bin/moc $(DEFINES) --include /home/hzk/Enjoy/src/Client/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/hzk/Enjoy/src/Client -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtQuickWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtLocation -I/usr/include/x86_64-linux-gnu/qt5/QtPositioningQuick -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtMultimediaWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtCharts -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include injurydisiplayui.h -o moc_injurydisiplayui.cpp + /usr/lib/qt5/bin/moc $(DEFINES) --include /home/hzk/Software_Architecture/src/Client/build/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/hzk/Software_Architecture/src/Client -I/home/hzk/Software_Architecture/src/Client/include -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtQuickWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtMultimediaWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtCharts -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtWebEngineCore -I/usr/include/x86_64-linux-gnu/qt5/QtQuick -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtQmlModels -I/usr/include/x86_64-linux-gnu/qt5/QtWebChannel -I/usr/include/x86_64-linux-gnu/qt5/QtQml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtPositioning -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13 -I/usr/include/c++/13/backward -I/usr/lib/gcc/x86_64-linux-gnu/13/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include include/injurydisiplayui.h -o build/moc_injurydisiplayui.cpp compiler_moc_objc_header_make_all: compiler_moc_objc_header_clean: compiler_moc_source_make_all: compiler_moc_source_clean: -compiler_uic_make_all: ui_InjuryAnalysisUI.h ui_guidingui.h ui_injurydisiplayui.h +compiler_uic_make_all: build/ui_InjuryAnalysisUI.h build/ui_guidingui.h build/ui_injurydisiplayui.h compiler_uic_clean: - -$(DEL_FILE) ui_InjuryAnalysisUI.h ui_guidingui.h ui_injurydisiplayui.h -ui_InjuryAnalysisUI.h: InjuryAnalysisUI.ui \ + -$(DEL_FILE) build/ui_InjuryAnalysisUI.h build/ui_guidingui.h build/ui_injurydisiplayui.h +build/ui_InjuryAnalysisUI.h: ui/InjuryAnalysisUI.ui \ /usr/lib/qt5/bin/uic - /usr/lib/qt5/bin/uic InjuryAnalysisUI.ui -o ui_InjuryAnalysisUI.h + /usr/lib/qt5/bin/uic ui/InjuryAnalysisUI.ui -o build/ui_InjuryAnalysisUI.h -ui_guidingui.h: guidingui.ui \ +build/ui_guidingui.h: ui/guidingui.ui \ /usr/lib/qt5/bin/uic - /usr/lib/qt5/bin/uic guidingui.ui -o ui_guidingui.h + /usr/lib/qt5/bin/uic ui/guidingui.ui -o build/ui_guidingui.h -ui_injurydisiplayui.h: injurydisiplayui.ui \ +build/ui_injurydisiplayui.h: ui/injurydisiplayui.ui \ /usr/lib/qt5/bin/uic - /usr/lib/qt5/bin/uic injurydisiplayui.ui -o ui_injurydisiplayui.h + /usr/lib/qt5/bin/uic ui/injurydisiplayui.ui -o build/ui_injurydisiplayui.h compiler_yacc_decl_make_all: compiler_yacc_decl_clean: @@ -510,47 +507,47 @@ compiler_clean: compiler_rcc_clean compiler_moc_predefs_clean compiler_moc_heade ####### Compile -DogDatabase.o: DogDatabase.cpp DogDatabase.h \ - UAVDatabase.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o DogDatabase.o DogDatabase.cpp +build/DogDatabase.o: src/DogDatabase.cpp include/DogDatabase.h \ + include/UAVDatabase.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/DogDatabase.o src/DogDatabase.cpp -InjuryAnalysisUI.o: InjuryAnalysisUI.cpp InjuryAnalysisUI.h \ - InjuryDatabase.h \ - ui_InjuryAnalysisUI.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o InjuryAnalysisUI.o InjuryAnalysisUI.cpp +build/InjuryAnalysisUI.o: src/InjuryAnalysisUI.cpp include/InjuryAnalysisUI.h \ + include/InjuryDatabase.h \ + build/ui_InjuryAnalysisUI.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/InjuryAnalysisUI.o src/InjuryAnalysisUI.cpp -InjuryDatabase.o: InjuryDatabase.cpp InjuryDatabase.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o InjuryDatabase.o InjuryDatabase.cpp +build/InjuryDatabase.o: src/InjuryDatabase.cpp include/InjuryDatabase.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/InjuryDatabase.o src/InjuryDatabase.cpp -UAVDatabase.o: UAVDatabase.cpp UAVDatabase.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o UAVDatabase.o UAVDatabase.cpp +build/UAVDatabase.o: src/UAVDatabase.cpp include/UAVDatabase.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/UAVDatabase.o src/UAVDatabase.cpp -injurydisiplayui.o: injurydisiplayui.cpp injurydisiplayui.h \ - ui_injurydisiplayui.h \ - InjuryDatabase.h \ - guidingui.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o injurydisiplayui.o injurydisiplayui.cpp +build/injurydisiplayui.o: src/injurydisiplayui.cpp include/injurydisiplayui.h \ + build/ui_injurydisiplayui.h \ + include/InjuryDatabase.h \ + include/guidingui.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/injurydisiplayui.o src/injurydisiplayui.cpp -main.o: main.cpp guidingui.h \ - DogDatabase.h \ - UAVDatabase.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o main.cpp +build/main.o: src/main.cpp include/guidingui.h \ + include/DogDatabase.h \ + include/UAVDatabase.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/main.o src/main.cpp -guidingui.o: guidingui.cpp guidingui.h \ - ui_guidingui.h - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o guidingui.o guidingui.cpp +build/guidingui.o: src/guidingui.cpp include/guidingui.h \ + build/ui_guidingui.h + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/guidingui.o src/guidingui.cpp -qrc_res.o: qrc_res.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_res.o qrc_res.cpp +build/qrc_res.o: build/qrc_res.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/qrc_res.o build/qrc_res.cpp -moc_InjuryAnalysisUI.o: moc_InjuryAnalysisUI.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_InjuryAnalysisUI.o moc_InjuryAnalysisUI.cpp +build/moc_InjuryAnalysisUI.o: build/moc_InjuryAnalysisUI.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/moc_InjuryAnalysisUI.o build/moc_InjuryAnalysisUI.cpp -moc_guidingui.o: moc_guidingui.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_guidingui.o moc_guidingui.cpp +build/moc_guidingui.o: build/moc_guidingui.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/moc_guidingui.o build/moc_guidingui.cpp -moc_injurydisiplayui.o: moc_injurydisiplayui.cpp - $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_injurydisiplayui.o moc_injurydisiplayui.cpp +build/moc_injurydisiplayui.o: build/moc_injurydisiplayui.cpp + $(CXX) -c $(CXXFLAGS) $(INCPATH) -o build/moc_injurydisiplayui.o build/moc_injurydisiplayui.cpp ####### Install diff --git a/src/Client/UAVDatabase.o b/src/Client/UAVDatabase.o deleted file mode 100644 index 69e5cc781b37e08f4284e45e70d29b6740be54a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33904 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 exWA-^1+hF|BciH7grMtez$ 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 literal 0 HcmV?d00001 diff --git a/src/Client/build/InjuryDatabase.o b/src/Client/build/InjuryDatabase.o new file mode 100644 index 0000000000000000000000000000000000000000..cfe31c693cf0c681d324fd6bd9f9257ffc0292f3 GIT binary patch literal 55712 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 z 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 G$Nvu{+8&Ak literal 0 HcmV?d00001 diff --git a/src/Client/build/injurydisiplayui.o b/src/Client/build/injurydisiplayui.o new file mode 100644 index 0000000000000000000000000000000000000000..e988a593a922957472ca4346f227a17a5a945eec GIT binary patch literal 52768 zcmeHw3wTu3)%KYr6T&SC3KbM}fKh{Dnh61d)tW#CCNf~c9fc-CGLV6g#AJfOOARIg z#vw>6v{1ET#Y(*(RuM!9D0rcluhdVg*0xeh0x4F|dI78DUu*BR&#c**11Nm4&;N8k znVfUp{qD8aUi-f1oHKX0y<_5RHbVuQ@m(WwrBK5tej#$6BTjRSp+=_QroeS7d@x-v z_?$!Med*W_j_1?)1#s+7=NHoPA~;@5=MFj!fa5?q9}LIK;e+9yDHnadd*z(;l#3g` z_H_#y+m6ZStVDTVFf#BHO+}f()QBDS-6L6js2T0=*|QxiP#3sVVGgubKaiLa`~K#&iZfp$o}d-uzY&{w|xGi+s}Xd zx3k^9P37Z{9MHuel=Jlmp&qIcWpx~cKBL~<9E7^SObN$~Za6VWX*`B$&4H)~MCONU zQ?aDOpV@PuZ) zD&}2k8X~50JE6p(v>aen9(A;%l~w^^^k?oCqM1QORzR@`gha!#c0 zl=DiOd%o)lxtD>OWuDN>Ai4@fOZz}`?pC-u;o9qI?gJ)3c3uIkq@PdWV%l(5be3*~ zOJ!&at~@-=*Pu{x#%9bD#Dg`Plz%8QFT_Xr=9h4}GuuoV`in4Yk4Us_I?O#=9Ki5~ z4hp0N7c#L_g?C_9v4lG)JQ}U=uW;!JZ$`S3x-&!R=UGuj0%Vz+KYBxurw;N9qUGlb z`Lg~v(ArnrYv2Iha<3G5ctxz(@znVl^>b`v+XG>y`kgi`DT0Nd4@4QB| zit|IcNhibv+Z+09o-xlRq`)~eZHGAbgrn4LAa(0vssjZRU|Hx5{S|s3kb>f&!mJZ! zgkD6&QX8s*+EE6Ml3G9=@Vz174gu|SfGQbD1^2SJa_x1!CZ%_vL7jU^az0h}kEH@pLL3aW+cLmw%Z zpI|OOVY<8}qZWNA7dkDMflgj4TM{FHS!1B6pEID@ctan_76vi0h+qx6PPX(tkdAfk zn^BC}4ZIp1`J9Lp^+!Yy7OLlBe}Iii=XpY7Q(<2r!_x#)n-(0hWOWF= ztF{T`{sJacF)i5Rs^~nqKVTt$+EK9^afd^f-+b#)B|+?8O!71r0hdNl*r|x<5c@r9 z;mvmR36bQAgy=(SUNH9D6GIgKI)dI7isv5n3(a3q=K&bn>5N#+U9 zbXJ)oH0@=CJ}|Qedkl55xqbqRIM!U-;1Xw6RdR3Rb8!jT2v_yEqAE#hiA1kV#=e01 zR*;z!F6a^VB#r!4%8FUtV8Y-!(7p=Hl=~JX1xa4pd!F#*eW@R%q+Zweqm*7=++1n+ z+?KNRFF^A|GbRG9*JLMbLkY%x8Y3?}PbK#8sJwkpm0%7$+35+#HSDrA90T#!Ct
)okx@{U(XyU$?m84MVc)W4iV(o2jF7At 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 XE#2XF0*eT$v#*O^|4&&IELHXoX3B0z literal 0 HcmV?d00001 diff --git a/src/Client/build/moc_InjuryAnalysisUI.cpp b/src/Client/build/moc_InjuryAnalysisUI.cpp new file mode 100644 index 0000000..21d8eb0 --- /dev/null +++ b/src/Client/build/moc_InjuryAnalysisUI.cpp @@ -0,0 +1,120 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'InjuryAnalysisUI.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.15) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../include/InjuryAnalysisUI.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'InjuryAnalysisUI.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.15. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_InjuryAnalysisUI_t { + QByteArrayData data[3]; + char stringdata0[40]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_InjuryAnalysisUI_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_InjuryAnalysisUI_t qt_meta_stringdata_InjuryAnalysisUI = { + { +QT_MOC_LITERAL(0, 0, 16), // "InjuryAnalysisUI" +QT_MOC_LITERAL(1, 17, 21), // "onSearchButtonClicked" +QT_MOC_LITERAL(2, 39, 0) // "" + + }, + "InjuryAnalysisUI\0onSearchButtonClicked\0" + "" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_InjuryAnalysisUI[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 1, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 0, 19, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, + + 0 // eod +}; + +void InjuryAnalysisUI::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onSearchButtonClicked(); break; + default: ; + } + } + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject InjuryAnalysisUI::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_InjuryAnalysisUI.data, + qt_meta_data_InjuryAnalysisUI, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *InjuryAnalysisUI::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *InjuryAnalysisUI::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_InjuryAnalysisUI.stringdata0)) + return static_cast(this); + return QWidget::qt_metacast(_clname); +} + +int InjuryAnalysisUI::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QWidget::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 1) + qt_static_metacall(this, _c, _id, _a); + _id -= 1; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 1) + *reinterpret_cast(_a[0]) = -1; + _id -= 1; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/src/Client/build/moc_InjuryAnalysisUI.o b/src/Client/build/moc_InjuryAnalysisUI.o new file mode 100644 index 0000000000000000000000000000000000000000..61f43fae08876be7cc9e774c695ac373ff0b2090 GIT binary patch literal 10272 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 C6Uf>C literal 0 HcmV?d00001 diff --git a/src/Client/build/moc_guidingui.cpp b/src/Client/build/moc_guidingui.cpp new file mode 100644 index 0000000..efcb27c --- /dev/null +++ b/src/Client/build/moc_guidingui.cpp @@ -0,0 +1,160 @@ +/**************************************************************************** +** Meta object code from reading C++ file 'guidingui.h' +** +** Created by: The Qt Meta Object Compiler version 67 (Qt 5.15.15) +** +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#include +#include "../include/guidingui.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'guidingui.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.15. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_GuidingUI_t { + QByteArrayData data[12]; + char stringdata0[212]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_GuidingUI_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_GuidingUI_t qt_meta_stringdata_GuidingUI = { + { +QT_MOC_LITERAL(0, 0, 9), // "GuidingUI" +QT_MOC_LITERAL(1, 10, 17), // "onAddRobotClicked" +QT_MOC_LITERAL(2, 28, 0), // "" +QT_MOC_LITERAL(3, 29, 17), // "onRobotTabClicked" +QT_MOC_LITERAL(4, 47, 26), // "onSpecifiedRobotTabClicked" +QT_MOC_LITERAL(5, 74, 15), // "onAddUAVClicked" +QT_MOC_LITERAL(6, 90, 15), // "onUAVTabClicked" +QT_MOC_LITERAL(7, 106, 22), // "onRobotLocationClicked" +QT_MOC_LITERAL(8, 129, 16), // "onUAVViewClicked" +QT_MOC_LITERAL(9, 146, 18), // "onRobotViewClicked" +QT_MOC_LITERAL(10, 165, 21), // "onRobotMappingClicked" +QT_MOC_LITERAL(11, 187, 24) // "onSmartNavigationClicked" + + }, + "GuidingUI\0onAddRobotClicked\0\0" + "onRobotTabClicked\0onSpecifiedRobotTabClicked\0" + "onAddUAVClicked\0onUAVTabClicked\0" + "onRobotLocationClicked\0onUAVViewClicked\0" + "onRobotViewClicked\0onRobotMappingClicked\0" + "onSmartNavigationClicked" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_GuidingUI[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 10, 14, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + // slots: name, argc, parameters, tag, flags + 1, 0, 64, 2, 0x0a /* Public */, + 3, 0, 65, 2, 0x0a /* Public */, + 4, 0, 66, 2, 0x0a /* Public */, + 5, 0, 67, 2, 0x08 /* Private */, + 6, 0, 68, 2, 0x08 /* Private */, + 7, 0, 69, 2, 0x08 /* Private */, + 8, 0, 70, 2, 0x08 /* Private */, + 9, 0, 71, 2, 0x08 /* Private */, + 10, 0, 72, 2, 0x08 /* Private */, + 11, 0, 73, 2, 0x08 /* Private */, + + // slots: parameters + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + QMetaType::Void, + + 0 // eod +}; + +void GuidingUI::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + if (_c == QMetaObject::InvokeMetaMethod) { + auto *_t = static_cast(_o); + (void)_t; + switch (_id) { + case 0: _t->onAddRobotClicked(); break; + case 1: _t->onRobotTabClicked(); break; + case 2: _t->onSpecifiedRobotTabClicked(); break; + case 3: _t->onAddUAVClicked(); break; + case 4: _t->onUAVTabClicked(); break; + case 5: _t->onRobotLocationClicked(); break; + case 6: _t->onUAVViewClicked(); break; + case 7: _t->onRobotViewClicked(); break; + case 8: _t->onRobotMappingClicked(); break; + case 9: _t->onSmartNavigationClicked(); break; + default: ; + } + } + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject GuidingUI::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_GuidingUI.data, + qt_meta_data_GuidingUI, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *GuidingUI::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *GuidingUI::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_GuidingUI.stringdata0)) + return static_cast(this); + return QMainWindow::qt_metacast(_clname); +} + +int GuidingUI::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QMainWindow::qt_metacall(_c, _id, _a); + if (_id < 0) + return _id; + if (_c == QMetaObject::InvokeMetaMethod) { + if (_id < 10) + qt_static_metacall(this, _c, _id, _a); + _id -= 10; + } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) { + if (_id < 10) + *reinterpret_cast(_a[0]) = -1; + _id -= 10; + } + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/src/Client/build/moc_guidingui.o b/src/Client/build/moc_guidingui.o new file mode 100644 index 0000000000000000000000000000000000000000..f6e3fb7c89528c424fafceb87ea5fafb42426f75 GIT binary patch literal 12248 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 +#include "../include/injurydisiplayui.h" +#include +#include +#if !defined(Q_MOC_OUTPUT_REVISION) +#error "The header file 'injurydisiplayui.h' doesn't include ." +#elif Q_MOC_OUTPUT_REVISION != 67 +#error "This file was generated using the moc from 5.15.15. It" +#error "cannot be used with the include files from this version of Qt." +#error "(The moc has changed too much.)" +#endif + +QT_BEGIN_MOC_NAMESPACE +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED +struct qt_meta_stringdata_InjuryDisiplayUI_t { + QByteArrayData data[1]; + char stringdata0[17]; +}; +#define QT_MOC_LITERAL(idx, ofs, len) \ + Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \ + qptrdiff(offsetof(qt_meta_stringdata_InjuryDisiplayUI_t, stringdata0) + ofs \ + - idx * sizeof(QByteArrayData)) \ + ) +static const qt_meta_stringdata_InjuryDisiplayUI_t qt_meta_stringdata_InjuryDisiplayUI = { + { +QT_MOC_LITERAL(0, 0, 16) // "InjuryDisiplayUI" + + }, + "InjuryDisiplayUI" +}; +#undef QT_MOC_LITERAL + +static const uint qt_meta_data_InjuryDisiplayUI[] = { + + // content: + 8, // revision + 0, // classname + 0, 0, // classinfo + 0, 0, // methods + 0, 0, // properties + 0, 0, // enums/sets + 0, 0, // constructors + 0, // flags + 0, // signalCount + + 0 // eod +}; + +void InjuryDisiplayUI::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a) +{ + (void)_o; + (void)_id; + (void)_c; + (void)_a; +} + +QT_INIT_METAOBJECT const QMetaObject InjuryDisiplayUI::staticMetaObject = { { + QMetaObject::SuperData::link(), + qt_meta_stringdata_InjuryDisiplayUI.data, + qt_meta_data_InjuryDisiplayUI, + qt_static_metacall, + nullptr, + nullptr +} }; + + +const QMetaObject *InjuryDisiplayUI::metaObject() const +{ + return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject; +} + +void *InjuryDisiplayUI::qt_metacast(const char *_clname) +{ + if (!_clname) return nullptr; + if (!strcmp(_clname, qt_meta_stringdata_InjuryDisiplayUI.stringdata0)) + return static_cast(this); + return QDialog::qt_metacast(_clname); +} + +int InjuryDisiplayUI::qt_metacall(QMetaObject::Call _c, int _id, void **_a) +{ + _id = QDialog::qt_metacall(_c, _id, _a); + return _id; +} +QT_WARNING_POP +QT_END_MOC_NAMESPACE diff --git a/src/Client/moc_injurydisiplayui.o b/src/Client/build/moc_injurydisiplayui.o similarity index 86% rename from src/Client/moc_injurydisiplayui.o rename to src/Client/build/moc_injurydisiplayui.o index 85f31b2fccf32b820f12ba5290787b72c5387397..7fb133319c4e3d692fe9cf8cae2fa8539ce1a51a 100644 GIT binary patch delta 167 zcmaD5a3ElU24llS&G#Jq{HzQhFj{%u|GKx*Upr*m-F!`sNJ!8UTOLcojfytHX_DmmGChtQ@E~A<2IGQ>n(sMy`B@o2VDd*k;myX3rA(6p7$qiuP!<5v29sYf+shm48S5G7 znw2J%=9QEh)ft)S8JK7)7=nd?8aLaq+>&FQFR62ihE| bZqFpZI(e459TNxd&3V*(lPY5C;c;OG!y76xp)nq9qQ(!P@j3kR0To ztdemMM?yF`x{}kbQhOo4S^NCvclkD--n@D9d)vE4bjR4Jz^Do;dVF-()@DY zo)B;+>;nSozhop;#FHv6-;}~R*Vc_I72H9bSxTXbJKRhv#ZB%I96eSH>&%{Nr5I&B z=y&KX>(r1#XITfz9ICOlmnelisX_TH#C4Zq@tQ0a7f(vDms|8SIJAkiJ6$OpuzKa_ ze3#J1eebuFw!k3sR$Asgb;hnYdf3)yXiZ3;>uJA{S&*a7JCo9E>bDh(y z1wH(&@Sx@^onqsf7mJEaZSy=uH D-c75g delta 797 zcmYk(JxE(o6bJBoPM#(&O$Dh+z`;;ZtZ013uauHDLq!4(TG}Fr5S&y{EF`ND1W^%8 z4CXjk2oA+ToQlsubP+Tuv=lmYDy2{qbjTuPQM@m{<9&DebARvL^X^A!+q3oAlWs-7 zo@qO-64uE4kLGmrXPeS5qmp zafh>MrMSTzQWJZMVU5}7P>Lnio%aqsXPp^yXoB@ai$gWmf#*u0L263Qg*X{fEdJQV z;_!!3e8(+DUOMzO>#$cT?68L9*7+{sE%*JlsWb|s%-_cqqr4S4K-<}nAXg+2JYLY z?qGM&=;%vMBxe)J(0r&TX!N`YbX8cEoBM#PNRt}+DXgJkE@+rQsH2-|9E5s`xUmzS znKN!2Lkv_?QO7$dQNfFEpiKG`83Bq}F-I#_M5$m!o^+p#Ws1qrcL6JBXs3)1`(3{P q=@Vi-{qkZGt`hQgG#io0Bu)RtE diff --git a/src/Client/ui_InjuryAnalysisUI.h b/src/Client/build/ui_InjuryAnalysisUI.h similarity index 99% rename from src/Client/ui_InjuryAnalysisUI.h rename to src/Client/build/ui_InjuryAnalysisUI.h index f2f25c4..6580b87 100644 --- a/src/Client/ui_InjuryAnalysisUI.h +++ b/src/Client/build/ui_InjuryAnalysisUI.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'InjuryAnalysisUI.ui' ** -** Created by: Qt User Interface Compiler version 5.15.13 +** Created by: Qt User Interface Compiler version 5.15.15 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! ********************************************************************************/ diff --git a/src/Client/ui_guidingui.h b/src/Client/build/ui_guidingui.h similarity index 91% rename from src/Client/ui_guidingui.h rename to src/Client/build/ui_guidingui.h index f65f03a..dda3210 100644 --- a/src/Client/ui_guidingui.h +++ b/src/Client/build/ui_guidingui.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'guidingui.ui' ** -** Created by: Qt User Interface Compiler version 5.15.13 +** Created by: Qt User Interface Compiler version 5.15.15 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! ********************************************************************************/ @@ -102,7 +102,7 @@ public: if (GuidingUI->objectName().isEmpty()) GuidingUI->setObjectName(QString::fromUtf8("GuidingUI")); GuidingUI->setEnabled(true); - GuidingUI->resize(1000, 663); + GuidingUI->resize(1400, 900); GuidingUI->setToolTipDuration(0); GuidingUI->setStyleSheet(QString::fromUtf8("#centralwidget{\n" " background-color: rgb(24, 33, 45);\n" @@ -166,13 +166,14 @@ public: label_2->setObjectName(QString::fromUtf8("label_2")); label_2->setStyleSheet(QString::fromUtf8("QLabel {\n" " background-color: rgba(15, 28, 34, 0);\n" -" color: rgb(82, 194, 242); /* \350\256\276\347\275\256\345\255\227\344\275\223\351\242\234\350\211\262\344\270\272\344\272\256\350\223\235\350\211\262 */\n" +" color: rgb(82, 194, 242);\n" " border: none;\n" -" padding: 10px 20px; /* \350\256\276\347\275\256\345\206\205\350\276\271\350\267\235 */\n" -" border-radius: 5px; /* \350\256\276\347\275\256\346\214\211\351\222\256\345\234\206\350\247\222 */\n" -" font-size: 28px; /* \350\256\276\347\275\256\346\226\207\345\255\227\345\244\247\345\260\217 */\n" -" font-weight: bold; /*\350\256\276\347\275\256\345\255\227\344\275\223\345\212\240\347\262\227*/\n" -" text-align: left; /* \350\256\276\347\275\256\345\255\227\344\275\223\345\261\205\345\267\246\345\257\271\351\275\220 */\n" +" padding: 10px 20px;\n" +" border-radius: 5px;\n" +" font-size: 32px;\n" +" font-weight: bold;\n" +" font-family: \"Courier New\", \"Monaco\", monospace;\n" +" text-align: left;\n" "}\n" "")); @@ -193,8 +194,8 @@ public: horizontalLayout_main->setObjectName(QString::fromUtf8("horizontalLayout_main")); leftPanel = new QWidget(centralwidget); leftPanel->setObjectName(QString::fromUtf8("leftPanel")); - leftPanel->setMinimumSize(QSize(210, 0)); - leftPanel->setMaximumSize(QSize(210, 16777215)); + leftPanel->setMinimumSize(QSize(250, 0)); + leftPanel->setMaximumSize(QSize(250, 16777215)); leftPanel->setStyleSheet(QString::fromUtf8("background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(15, 22, 32), stop:1 rgb(25, 35, 45));")); verticalLayout = new QVBoxLayout(leftPanel); verticalLayout->setSpacing(20); @@ -202,21 +203,30 @@ public: verticalLayout->setContentsMargins(10, 15, 10, 10); leftPanelTitle = new QLabel(leftPanel); leftPanelTitle->setObjectName(QString::fromUtf8("leftPanelTitle")); - leftPanelTitle->setStyleSheet(QString::fromUtf8("color: rgb(82, 194, 242);\n" + leftPanelTitle->setStyleSheet(QString::fromUtf8("color: rgb(255, 255, 255);\n" "font-size: 18px;\n" "font-weight: bold;\n" -"padding: 5px;\n" -"margin-bottom: 10px;")); +"padding: 12px;\n" +"margin-bottom: 10px;\n" +"background: qlineargradient(x1:0, y1:0, x2:1, y2:1, \n" +" stop:0 rgba(82, 194, 242, 0.3), \n" +" stop:1 rgba(45, 120, 180, 0.3));\n" +"border: 2px solid rgba(82, 194, 242, 0.7);\n" +"border-radius: 8px;")); leftPanelTitle->setAlignment(Qt::AlignCenter); verticalLayout->addWidget(leftPanelTitle); separatorLine = new QLabel(leftPanel); separatorLine->setObjectName(QString::fromUtf8("separatorLine")); - separatorLine->setMinimumSize(QSize(0, 2)); - separatorLine->setMaximumSize(QSize(16777215, 2)); - separatorLine->setStyleSheet(QString::fromUtf8("background-color: rgba(82, 194, 242, 0.5);\n" -"margin-bottom: 15px;")); + separatorLine->setMinimumSize(QSize(0, 3)); + separatorLine->setMaximumSize(QSize(16777215, 3)); + separatorLine->setStyleSheet(QString::fromUtf8("background: qlineargradient(x1:0, y1:0, x2:1, y2:0,\n" +" stop:0 rgba(82, 194, 242, 0.0),\n" +" stop:0.5 rgba(82, 194, 242, 0.8),\n" +" stop:1 rgba(82, 194, 242, 0.0));\n" +"margin-bottom: 15px;\n" +"border-radius: 2px;")); verticalLayout->addWidget(separatorLine); @@ -366,8 +376,8 @@ public: rightPanel = new QWidget(centralwidget); rightPanel->setObjectName(QString::fromUtf8("rightPanel")); - rightPanel->setMinimumSize(QSize(210, 0)); - rightPanel->setMaximumSize(QSize(210, 16777215)); + rightPanel->setMinimumSize(QSize(280, 0)); + rightPanel->setMaximumSize(QSize(280, 16777215)); rightPanel->setStyleSheet(QString::fromUtf8("background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(15, 22, 32), stop:1 rgb(25, 35, 45));")); verticalLayout_3 = new QVBoxLayout(rightPanel); verticalLayout_3->setSpacing(20); @@ -375,24 +385,30 @@ public: verticalLayout_3->setContentsMargins(10, 15, 10, 10); rightPanelTitle = new QLabel(rightPanel); rightPanelTitle->setObjectName(QString::fromUtf8("rightPanelTitle")); - rightPanelTitle->setStyleSheet(QString::fromUtf8("color: rgb(82, 194, 242);\n" + rightPanelTitle->setStyleSheet(QString::fromUtf8("color: rgb(255, 255, 255);\n" "font-size: 18px;\n" "font-weight: bold;\n" -"padding: 5px;\n" +"padding: 12px;\n" "margin-bottom: 5px;\n" -"background-color: rgba(30, 44, 62, 0.5);\n" -"border-radius: 5px;")); +"background: qlineargradient(x1:0, y1:0, x2:1, y2:1, \n" +" stop:0 rgba(82, 194, 242, 0.3), \n" +" stop:1 rgba(45, 120, 180, 0.3));\n" +"border: 2px solid rgba(82, 194, 242, 0.7);\n" +"border-radius: 8px;")); rightPanelTitle->setAlignment(Qt::AlignCenter); verticalLayout_3->addWidget(rightPanelTitle); separatorLine_2 = new QLabel(rightPanel); separatorLine_2->setObjectName(QString::fromUtf8("separatorLine_2")); - separatorLine_2->setMinimumSize(QSize(0, 2)); - separatorLine_2->setMaximumSize(QSize(16777215, 2)); - separatorLine_2->setStyleSheet(QString::fromUtf8("background-color: rgba(82, 194, 242, 0.5);\n" + separatorLine_2->setMinimumSize(QSize(0, 3)); + separatorLine_2->setMaximumSize(QSize(16777215, 3)); + separatorLine_2->setStyleSheet(QString::fromUtf8("background: qlineargradient(x1:0, y1:0, x2:1, y2:0,\n" +" stop:0 rgba(82, 194, 242, 0.0),\n" +" stop:0.5 rgba(82, 194, 242, 0.8),\n" +" stop:1 rgba(82, 194, 242, 0.0));\n" "margin-bottom: 10px;\n" -"border-radius: 1px;")); +"border-radius: 2px;")); verticalLayout_3->addWidget(separatorLine_2); @@ -526,7 +542,7 @@ public: GuidingUI->setCentralWidget(centralwidget); menubar = new QMenuBar(GuidingUI); menubar->setObjectName(QString::fromUtf8("menubar")); - menubar->setGeometry(QRect(0, 0, 1000, 25)); + menubar->setGeometry(QRect(0, 0, 1400, 25)); menu = new QMenu(menubar); menu->setObjectName(QString::fromUtf8("menu")); GuidingUI->setMenuBar(menubar); @@ -552,8 +568,8 @@ public: action_4->setText(QCoreApplication::translate("GuidingUI", "\344\274\244\345\221\230", nullptr)); action_5->setText(QCoreApplication::translate("GuidingUI", "\345\212\240\350\275\275\345\234\260\345\233\276", nullptr)); label->setText(QString()); - label_2->setText(QCoreApplication::translate("GuidingUI", "UBEES", nullptr)); - leftPanelTitle->setText(QCoreApplication::translate("GuidingUI", "\346\234\272\345\231\250\344\272\272\347\256\241\347\220\206", nullptr)); + label_2->setText(QCoreApplication::translate("GuidingUI", "\342\227\211 UBEES", nullptr)); + leftPanelTitle->setText(QCoreApplication::translate("GuidingUI", "\360\237\244\226 \346\234\272\345\231\250\344\272\272\347\256\241\347\220\206", nullptr)); separatorLine->setText(QString()); robottab->setText(QCoreApplication::translate("GuidingUI", "\346\234\272\345\231\250\344\272\272\345\210\227\350\241\250", nullptr)); label_10->setText(QString()); @@ -567,7 +583,7 @@ public: label_8->setText(QString()); UAVtab->setText(QCoreApplication::translate("GuidingUI", "\346\227\240\344\272\272\346\234\272\345\210\227\350\241\250", nullptr)); label_13->setText(QString()); - rightPanelTitle->setText(QCoreApplication::translate("GuidingUI", "\346\210\230\345\234\272\346\216\242\347\264\242\346\250\241\345\235\227", nullptr)); + rightPanelTitle->setText(QCoreApplication::translate("GuidingUI", "\360\237\216\257 \346\210\230\345\234\272\346\216\242\347\264\242\346\250\241\345\235\227", nullptr)); separatorLine_2->setText(QString()); UAVview->setText(QCoreApplication::translate("GuidingUI", "\346\227\240\344\272\272\346\234\272\350\247\206\350\247\222", nullptr)); label_7->setText(QString()); diff --git a/src/Client/ui_injurydisiplayui.h b/src/Client/build/ui_injurydisiplayui.h similarity index 95% rename from src/Client/ui_injurydisiplayui.h rename to src/Client/build/ui_injurydisiplayui.h index 1ab142c..c03ef70 100644 --- a/src/Client/ui_injurydisiplayui.h +++ b/src/Client/build/ui_injurydisiplayui.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading UI file 'injurydisiplayui.ui' ** -** Created by: Qt User Interface Compiler version 5.15.13 +** Created by: Qt User Interface Compiler version 5.15.15 ** ** WARNING! All changes made in this file will be lost when recompiling UI file! ********************************************************************************/ diff --git a/src/Client/guidingui.h b/src/Client/guidingui.h deleted file mode 100644 index ad5dadd..0000000 --- a/src/Client/guidingui.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef GUIDINGUI_H -#define GUIDINGUI_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE -namespace Ui { -class GuidingUI; -} -QT_END_NAMESPACE - -class GuidingUI : public QMainWindow -{ - Q_OBJECT - -public: - GuidingUI(QWidget *parent = nullptr); - ~GuidingUI(); - // 功能界面地图显示控制 - void MapDisplayControl(QPushButton*,QWidget*,QGridLayout*); - // 添加机器人按钮槽函数 - void on_addrobot_clicked(); - // 功能界面添加机器人按钮控制 - void AddRobotControl(QPushButton*); - // 机器人列表显示按钮槽函数 - void on_robottab_clicked(); - // 功能界面显示已配置机器人列表按钮控制 - void RobotsInfosControl(QPushButton*); - // 机器人列表当中的切换到指定机器人页面槽函数 - void on_specifiedrobottab_clicked(); - -private slots: - // 新增的槽函数 - void on_addUAV_clicked(); - void on_UAVtab_clicked(); - void on_robotlocation_clicked(); - - // 战场探索系统新增槽函数 - void on_UAVview_clicked(); - void on_robotView_clicked(); - void on_robotMapping_clicked(); - void on_smartNavigation_clicked(); - - // 人脸识别槽函数 - void on_faceRecognition_clicked(); - - // 人脸跟随槽函数 - void on_faceTracking_clicked(); - -private: - Ui::GuidingUI *ui; - // 存储机器人列表 - QVector> robotList; // 存储机器人名称和IP地址 - // 存储无人机列表 - QVector> uavList; // 存储无人机名称和IP地址 - - // 人脸识别进程 - QProcess *faceRecognitionProcess; - - // 人脸跟随进程 - QProcess *faceTrackingProcess; -}; -#endif // GUIDINGUI_H diff --git a/src/Client/guidingui.o b/src/Client/guidingui.o deleted file mode 100644 index 5ed967499ad25027aeeb8392958b68d55af06a25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162232 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 Pm>p*Ir5PWa+yDOn;i$Q= diff --git a/src/Client/include/DogDatabase.h b/src/Client/include/DogDatabase.h new file mode 100644 index 0000000..a036a46 --- /dev/null +++ b/src/Client/include/DogDatabase.h @@ -0,0 +1,209 @@ +/** + * @file DogDatabase.h + * @brief 地面机器人数据库管理类定义 + * @author CasualtySightPlus Team + * @date 2024-01-01 + * @version 1.0 + * + * 地面机器人数据库管理类,提供机器人设备的数据存储和管理功能: + * - 朼器人设备信息的增删改查 + * - 设备状态监控和更新 + * - 设备位置信息管理 + * - 数据库连接和事务处理 + * + * @note 使用单例模式确保全局唯一数据库实例 + * @note 依赖Qt SQL模块 + * @since 1.0 + */ + +#ifndef DOGDATABASE_H +#define DOGDATABASE_H + +// Qt SQL头文件 +#include +#include +#include +#include + +// Qt核心头文件 +#include +#include +#include + +// 项目内部头文件 +#include "UAVDatabase.h" + + +/** + * @struct Dog + * @brief 地面机器人数据结构 + * + * 存储地面机器人设备的基本信息和状态数据。 + */ +struct Dog +{ + QString id; ///< 机器人唯一标识符 + int state; ///< 机器人工作状态 (0:离线, 1:在线, 2:工作中, 3:错误) + QString ip; ///< 机器人 IP地址 + int port; ///< 机器人通信端口 + double lon; ///< 经度坐标 + double lat; ///< 纬度坐标 +}; + + +/** + * @class DogDatabase + * @brief 地面机器人数据库管理类 + * + * 地面机器人数据库管理类,使用单例模式设计。 + * 提供地面机器人设备的全面数据管理功能。 + * + * 主要功能: + * - 朼器人设备信息的CRUD操作 + * - 设备状态实时监控和查询 + * - 设备地理位置信息管理 + * - 数据库连接和事务处理 + * - SQL查询构建和执行 + * + * 设计模式: + * - 单例模式:确保全局唯一数据库实例 + * - 线程安全:支持并发访问 + * + * @note 这是一个线程安全的单例类 + * @warning 使用前必须先调用getInstance()方法 + * @see UAVDatabase, Point + * @since 1.0 + */ +class DogDatabase +{ +public: + /** + * @brief 获取单例实例 + * @return DogDatabase单例指针 + */ + static DogDatabase *getInstance(); + + /** + * @brief 析构函数 + */ + ~DogDatabase(); + + /** + * @brief 获取机器人状态信息 + * @param id 机器人唯一标识符 + * @return 机器人状态 (0:离线, 1:在线, 2:工作中, 3:错误) + */ + int getDeviceState(const QString &id); + + /** + * @brief 添加机器人数据记录 + * @param data 朼器人数据结构 + * @return 操作结果,true:成功, false:失败 + */ + bool addDevice(const Dog &data); + + /** + * @brief 获取机器人位置信息 + * @param id 机器人唯一标识符 + * @return 朼器人位置坐标点 + */ + Point getDevicePosition(const QString &id); + + /** + * @brief 获取当前机器人数据 + * @return 朼器人数据结构 + */ + Dog getCurrentData() const { return m_currentData; } + + /** + * @brief 设置当前机器人数据 + * @param data 机器人数据结构 + */ + void setCurrentData(const Dog &data) { m_currentData = data; } + + + +private: + /** + * @brief 私有构造函数(单例模式) + */ + DogDatabase(); + + /** + * @brief 禁止拷贝构造函数 + */ + DogDatabase(const DogDatabase &) = delete; + + /** + * @brief 禁止赋值操作符 + */ + DogDatabase &operator=(const DogDatabase &) = delete; + + /** + * @brief 打开数据库连接 + * @param dbName 数据库名称 + * @param userName 用户名(可选) + * @param passwd 密码(可选) + * @return 连接结果,true:成功, false:失败 + */ + bool openDatabase(const QString &dbName, const QString &userName = QString(), const QString &passwd = QString()); + + /** + * @brief 关闭数据库连接 + */ + void closeDatabase(); + + /** + * @brief 开始添加字段 + * @param tableName 表名 + */ + void beginAddField(const QString &tableName); + + /** + * @brief 添加字段 + * @param fieldName 字段名 + */ + void addField(const QString &fieldName); + + /** + * @brief 结束添加字段 + */ + void endAddField(); + + /** + * @brief 开始添加数据行 + */ + void beginAddRow(); + + /** + * @brief 添加字段值 + * @param value 字段值 + */ + void addValue(const QVariant &value); + + /** + * @brief 结束添加数据行 + */ + void endAddRow(); + + /** + * @brief 执行SQL语句 + * @param sql SQL语句 + * @return 执行结果,true:成功, false:失败 + */ + bool executeSQL(const QString &sql); + +private: + static DogDatabase *m_instance; ///< 单例实例指针 + QSqlDatabase m_sqlDatabase; ///< 数据库连接对象 + QString m_tableName; ///< 当前表名 + QStringList m_fieldNames; ///< 字段名列表 + QString m_headerSQL; ///< SQL语句头部 + QString m_valueSQL; ///< SQL语句值部 + int m_fieldCount; ///< 已添加字段数量 + Dog m_currentData; ///< 当前机器人数据 + +}; + + +#endif // DOGDATABASE_H diff --git a/src/Client/include/InjuryAnalysisUI.h b/src/Client/include/InjuryAnalysisUI.h new file mode 100644 index 0000000..cea5596 --- /dev/null +++ b/src/Client/include/InjuryAnalysisUI.h @@ -0,0 +1,126 @@ +/** + * @file InjuryAnalysisUI.h + * @brief 伤情态势分析界面定义 + * @author CasualtySightPlus Team + * @date 2024-01-01 + * @version 1.0 + * + * 伤情态势分析界面类,提供伤员数据的统计分析和可视化功能: + * - 伤员数据统计和分类 + * - 伤情等级柱状图显示 + * - 数据查询和筛选 + * - 实时数据更新和分析 + * + * @note 依赖Qt Charts模块和数据库模块 + * @since 1.0 + */ + +#ifndef INJURYANALYSISUI_H +#define INJURYANALYSISUI_H + +// Qt核心头文件 +#include + +// Qt Charts头文件 +#include +#include +#include +#include +#include +#include + +// 项目内部头文件 +#include "InjuryDatabase.h" + +QT_BEGIN_NAMESPACE +namespace Ui { +class InjuryAnalysisUI; //声明ui命名空间下的类 +} +QT_END_NAMESPACE + +/** + * @class InjuryAnalysisUI + * @brief 伤情态势分析界面 + * + * 伤情态势分析界面类,继承自QWidget。 + * 提供伤员数据的全面统计分析和可视化功能。 + * + * 主要功能: + * - 伤员数据自动统计和分类 + * - 伤情等级柱状图实时显示 + * - 数据查询、筛选和搜索 + * - 伤员总数和各级别人数显示 + * - 滚动区域显示详细信息 + * + * 数据分类: + * - Rank 0: 轻微伤员 + * - Rank 1: 一般伤员 + * - Rank 2: 严重伤员 + * + * @note 使用Qt Charts进行数据可视化 + * @warning 使用前需要确保伤员数据库可用 + * @see InjuryDatabase, Injury + * @since 1.0 + */ +class InjuryAnalysisUI : public QWidget +{ + Q_OBJECT + +public: + /** + * @brief 构造函数 + * @param parent 父窗口指针,默认为nullptr + */ + explicit InjuryAnalysisUI(QWidget *parent = nullptr); + + /** + * @brief 析构函数 + */ + ~InjuryAnalysisUI(); + + /** + * @brief 获取当前伤员数据结果 + * @return 伤员数据列表 + */ + QList getResult() const { return m_result; } + +private slots: + /** + * @brief 搜索按钮点击槽函数 + */ + void onSearchButtonClicked(); + +private: + /** + * @brief 创建柱状图表 + */ + void createBarChart(); + + /** + * @brief 更新柱状图表数据 + */ + void updateBarChart(); + + /** + * @brief 初始化UI界面 + */ + void setupUI(); + + /** + * @brief 连接信号和槽 + */ + void connectSignals(); + + /** + * @brief 加载伤员数据 + */ + void loadInjuryData(); + +private: + Ui::InjuryAnalysisUI *m_ui; ///< UI界面指针 + QChart *m_chart; ///< 柱状图表指针 + QChartView *m_chartView; ///< 图表视图指针 + QList m_result; ///< 伤员数据结果列表 +}; + +#endif // INJURYANALYSISUI_H diff --git a/src/Client/InjuryDatabase.h b/src/Client/include/InjuryDatabase.h similarity index 100% rename from src/Client/InjuryDatabase.h rename to src/Client/include/InjuryDatabase.h diff --git a/src/Client/UAVDatabase.h b/src/Client/include/UAVDatabase.h similarity index 100% rename from src/Client/UAVDatabase.h rename to src/Client/include/UAVDatabase.h diff --git a/src/Client/include/guidingui.h b/src/Client/include/guidingui.h new file mode 100644 index 0000000..ac02382 --- /dev/null +++ b/src/Client/include/guidingui.h @@ -0,0 +1,188 @@ +/** + * @file guidingui.h + * @brief 战场探索系统主控制界面定义 + * @author CasualtySightPlus Team + * @date 2024-01-01 + * @version 1.0 + * + * 主控制界面类,提供战场探索系统的核心功能,包括: + * - UAV(无人机)管理 + * - 地面机器人管理 + * - 地图显示控制 + * - 人脸识别和跟踪 + * - 智能导航系统 + * + * @note 依赖Qt GUI模块和快速控件模块 + * @since 1.0 + */ + +#ifndef GUIDINGUI_H +#define GUIDINGUI_H + +// Qt核心头文件 +#include +#include +#include +#include + +// Qt控件头文件 +#include +#include +#include +#include +#include + +// Qt其他模块 +#include +#include +#include + +// 标准库头文件 +#include +#include + +QT_BEGIN_NAMESPACE +namespace Ui { +class GuidingUI; +} +QT_END_NAMESPACE + +/** + * @class GuidingUI + * @brief 战场探索系统主控制界面 + * + * 战场探索系统的主界面类,继承自QMainWindow。 + * 提供完整的战场探索和管理功能,包括: + * + * 主要功能: + * - UAV(无人机)设备管理和控制 + * - 地面机器人设备管理和控制 + * - 实时地图显示和位置标记 + * - 人脸识别和自动跟踪 + * - 智能导航和路径规划 + * - 设备状态监控和管理 + * + * 界面特点: + * - 军用风格的现代化界面设计 + * - 支持多设备同时管理 + * - 实时数据显示和更新 + * - 直观的操作控制面板 + * + * @note 这是应用程序的主要用户界面 + * @warning 使用前需要确保数据库连接正常 + * @see UAVDatabase, DogDatabase + * @since 1.0 + */ +class GuidingUI : public QMainWindow +{ + Q_OBJECT + +public: + /** + * @brief 构造函数 + * @param parent 父窗口指针,默认为nullptr + */ + explicit GuidingUI(QWidget *parent = nullptr); + + /** + * @brief 析构函数 + */ + ~GuidingUI(); + + /** + * @brief 地图显示控制 + * @param button 控制按钮指针 + * @param widget 显示控件指针 + * @param layout 布局指针 + */ + void mapDisplayControl(QPushButton *button, QWidget *widget, QGridLayout *layout); + + /** + * @brief 添加机器人按钮控制 + * @param button 控制按钮指针 + */ + void addRobotControl(QPushButton *button); + + /** + * @brief 显示已配置机器人列表按钮控制 + * @param button 控制按钮指针 + */ + void robotsInfosControl(QPushButton *button); + +public slots: + /** + * @brief 添加机器人按钮点击槽函数 + */ + void onAddRobotClicked(); + + /** + * @brief 机器人列表显示按钮点击槽函数 + */ + void onRobotTabClicked(); + + /** + * @brief 切换到指定机器人页面槽函数 + */ + void onSpecifiedRobotTabClicked(); + +private slots: + /** + * @brief 添加无人机按钮点击槽函数 + */ + void onAddUAVClicked(); + + /** + * @brief 无人机标签页点击槽函数 + */ + void onUAVTabClicked(); + + /** + * @brief 机器人位置按钮点击槽函数 + */ + void onRobotLocationClicked(); + + /** + * @brief 无人机视图按钮点击槽函数 + */ + void onUAVViewClicked(); + + /** + * @brief 机器人视图按钮点击槽函数 + */ + void onRobotViewClicked(); + + /** + * @brief 机器人地图绘制按钮点击槽函数 + */ + void onRobotMappingClicked(); + + /** + * @brief 智能导航按钮点击槽函数 + */ + void onSmartNavigationClicked(); + + // 注意:人脸识别相关功能暂未实现,相关代码已移除 + +private: + /** + * @brief 初始化UI界面 + */ + void setupUI(); + + /** + * @brief 连接信号和槽 + */ + void connectSignals(); + + /** + * @brief 设置窗口样式 + */ + void setupStyle(); + +private: + Ui::GuidingUI *m_ui; ///< UI界面指针 + QVector> m_robotList; ///< 机器人列表(名称-IP地址对) + QVector> m_uavList; ///< 无人机列表(名称-IP地址对) + // 人脸识别相关成员变量已移除(功能暂未实现) +}; +#endif // GUIDINGUI_H diff --git a/src/Client/injurydisiplayui.h b/src/Client/include/injurydisiplayui.h similarity index 100% rename from src/Client/injurydisiplayui.h rename to src/Client/include/injurydisiplayui.h diff --git a/src/Client/injurydisiplayui.o b/src/Client/injurydisiplayui.o deleted file mode 100644 index 8ae7ef5aba1b0034931e2d3385460e9d86c8e207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52640 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 h8R>KIf5YfVkw^8v?mt}9qm|#kQ>WZdy8 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 diff --git a/src/Client/src/DogDatabase.cpp b/src/Client/src/DogDatabase.cpp new file mode 100644 index 0000000..ea7f876 --- /dev/null +++ b/src/Client/src/DogDatabase.cpp @@ -0,0 +1,200 @@ +#include "DogDatabase.h" + +// 单例实例指针定义 +DogDatabase *DogDatabase::m_instance = nullptr; + +DogDatabase *DogDatabase::getInstance() +{ + if (m_instance == nullptr) { + m_instance = new DogDatabase(); + } + return m_instance; +} + +DogDatabase::~DogDatabase() +{ + closeDatabase(); +} + +DogDatabase::DogDatabase() +{ + m_sqlDatabase = QSqlDatabase::addDatabase("QMYSQL"); + m_fieldCount = 0; +} + +//添加记录 +bool DogDatabase::addDevice(const Dog &data) +{ + if(openDatabase("fly_land_database","root","hzk200407140238")) + { + beginAddField("dogdatabase"); + addField("id"); + addField("state"); + addField("ip"); + addField("port"); + addField("lon"); + addField("lat"); + endAddField(); + + beginAddRow(); + addValue(data.id); + addValue(data.state); + addValue(data.ip); + addValue(data.port); + addValue(data.lon); + addValue(data.lat); + endAddRow(); + + m_valueSQL = m_valueSQL.left(m_valueSQL.length()-1); + QString sql; + sql = m_headerSQL + m_valueSQL; + return executeSQL(sql); + } + closeDatabase(); + return false; +} + +//查询位置信息的记录 +Point DogDatabase::getDevicePosition(const QString &id) +{ + Point position; + position.lon = 0; + position.lat = 0; + + if(openDatabase("fly_land_database","root","hzk200407140238")) + { + QSqlQuery query(m_sqlDatabase); + + QString strQuery; + strQuery = "SELECT lon, lat FROM "; + strQuery += "dogdatabase"; + strQuery += " WHERE id = "; + strQuery += id; + + qDebug()< #include #include +// 项目内部头文件 +#include "InjuryDatabase.h" + // 使用QtCharts命名空间 QT_CHARTS_USE_NAMESPACE -InjuryAnalysisUI::InjuryAnalysisUI(QWidget* parent): - QWidget(parent), - ui(new Ui::InjuryAnalysisUI), - chart(nullptr), - chartView(nullptr) +InjuryAnalysisUI::InjuryAnalysisUI(QWidget* parent) + : QWidget(parent) + , m_ui(new Ui::InjuryAnalysisUI) + , m_chart(nullptr) + , m_chartView(nullptr) { - ui->setupUi(this); + m_ui->setupUi(this); setWindowTitle("伤情态势分析界面"); //resize(600,400); InjuryDatabase injurydatabase; QList resultNow; injurydatabase.select_all(resultNow);//获取所有伤员数据 - result = resultNow; + m_result = resultNow; //添加一个scrollArea来将信息显示出来 - ui->scrollArea->setWidgetResizable(true);//可以拖动滚动条 + m_ui->scrollArea->setWidgetResizable(true);//可以拖动滚动条 //竖滚动条和横滚动条都可以一直显示 - ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); - ui->scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + m_ui->scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); //设置主界面的实际界面 - ui->scrollArea->setWidget(ui->scrollAreaWidgetContents); + m_ui->scrollArea->setWidget(m_ui->scrollAreaWidgetContents); // 移除表格相关部分,只保留柱状图 //对信息进行分类统计分析 - int sum = result.length(); - ui->sumLabel->setText(QString::number(sum)); + int sum = m_result.length(); + m_ui->sumLabel->setText(QString::number(sum)); int rank0Sum = 0; int rank1Sum = 0; int rank2Sum = 0; for(int i = 0; irank0Label->setText(QString::number(rank0Sum)); - ui->rank1Label->setText(QString::number(rank1Sum)); - ui->rank2Label->setText(QString::number(rank2Sum)); + m_ui->rank0Label->setText(QString::number(rank0Sum)); + m_ui->rank1Label->setText(QString::number(rank1Sum)); + m_ui->rank2Label->setText(QString::number(rank2Sum)); // 创建并显示柱状图 createBarChart(); @@ -58,11 +70,11 @@ InjuryAnalysisUI::InjuryAnalysisUI(QWidget* parent): InjuryAnalysisUI::~InjuryAnalysisUI() { - delete ui; - if (chart) { - delete chart; + delete m_ui; + if (m_chart) { + delete m_chart; } - // chartView会被自动删除,因为它作为布局的一部分 + // m_chartView会被自动删除,因为它作为布局的一部分 } void InjuryAnalysisUI::createBarChart() @@ -81,12 +93,12 @@ void InjuryAnalysisUI::createBarChart() int rank0Sum = 0; int rank1Sum = 0; int rank2Sum = 0; - for(int i = 0; i < result.length(); i++) { - if(result[i].rank == 0) + for(int i = 0; i < m_result.length(); i++) { + if(m_result[i].rank == 0) rank0Sum++; - else if(result[i].rank == 1) + else if(m_result[i].rank == 1) rank1Sum++; - else if(result[i].rank == 2) + else if(m_result[i].rank == 2) rank2Sum++; } @@ -105,18 +117,18 @@ void InjuryAnalysisUI::createBarChart() series->setBarWidth(0.8); // 创建柱状图 - chart = new QChart(); - chart->addSeries(series); + m_chart = new QChart(); + m_chart->addSeries(series); // 移除标题 - chart->setTitle(""); - chart->setAnimationOptions(QChart::SeriesAnimations); + m_chart->setTitle(""); + m_chart->setAnimationOptions(QChart::SeriesAnimations); // 创建坐标轴 QStringList categories; categories << ""; // 使用空字符串替代"伤情等级" QBarCategoryAxis *axisX = new QBarCategoryAxis(); axisX->append(categories); - chart->addAxis(axisX, Qt::AlignBottom); + m_chart->addAxis(axisX, Qt::AlignBottom); series->attachAxis(axisX); QValueAxis *axisY = new QValueAxis(); @@ -128,55 +140,55 @@ void InjuryAnalysisUI::createBarChart() axisY->setLabelsVisible(true); // 确保显示Y轴标签 // 设置Y轴刻度数量,使刻度更合理 axisY->setTickCount(maxValue <= 5 ? maxValue + 2 : 6); - chart->addAxis(axisY, Qt::AlignLeft); + m_chart->addAxis(axisY, Qt::AlignLeft); series->attachAxis(axisY); // 设置图例 - chart->legend()->setVisible(true); - chart->legend()->setAlignment(Qt::AlignBottom); - chart->legend()->setMarkerShape(QLegend::MarkerShapeRectangle); + m_chart->legend()->setVisible(true); + m_chart->legend()->setAlignment(Qt::AlignBottom); + m_chart->legend()->setMarkerShape(QLegend::MarkerShapeRectangle); // 减小图例的大小,使其更紧凑 - QFont legendFont = chart->legend()->font(); + QFont legendFont = m_chart->legend()->font(); legendFont.setPointSize(8); - chart->legend()->setFont(legendFont); + m_chart->legend()->setFont(legendFont); // 创建图表视图并添加到布局中 - chartView = new QChartView(chart); - chartView->setRenderHint(QPainter::Antialiasing); + m_chartView = new QChartView(m_chart); + m_chartView->setRenderHint(QPainter::Antialiasing); // 设置适当的图表边距,左侧留出空间显示数字 - chart->setMargins(QMargins(5, 5, 5, 5)); - chart->setBackgroundVisible(false); // 移除背景 + m_chart->setMargins(QMargins(5, 5, 5, 5)); + m_chart->setBackgroundVisible(false); // 移除背景 - // 将chartView直接添加到scrollAreaWidgetContents中 - QVBoxLayout *chartLayout = new QVBoxLayout(ui->scrollAreaWidgetContents); - chartLayout->addWidget(chartView); + // 将m_chartView直接添加到scrollAreaWidgetContents中 + QVBoxLayout *chartLayout = new QVBoxLayout(m_ui->scrollAreaWidgetContents); + chartLayout->addWidget(m_chartView); chartLayout->setContentsMargins(0, 0, 0, 0); // 移除布局边距 // 增加顶部空间,减少底部空间 - ui->scrollAreaWidgetContents->setMinimumHeight(250); // 设置足够的高度 - ui->scrollAreaWidgetContents->setLayout(chartLayout); + m_ui->scrollAreaWidgetContents->setMinimumHeight(250); // 设置足够的高度 + m_ui->scrollAreaWidgetContents->setLayout(chartLayout); } void InjuryAnalysisUI::updateBarChart() { // 如果已经创建了图表,则更新数据 - if (chart) { + if (m_chart) { // 获取各等级伤员数量 int rank0Sum = 0; int rank1Sum = 0; int rank2Sum = 0; - for(int i = 0; i < result.length(); i++) { - if(result[i].rank == 0) + for(int i = 0; i < m_result.length(); i++) { + if(m_result[i].rank == 0) rank0Sum++; - else if(result[i].rank == 1) + else if(m_result[i].rank == 1) rank1Sum++; - else if(result[i].rank == 2) + else if(m_result[i].rank == 2) rank2Sum++; } // 获取图表的系列 - QBarSeries *series = qobject_cast(chart->series().at(0)); + QBarSeries *series = qobject_cast(m_chart->series().at(0)); if (series && series->count() >= 3) { // 更新三个柱状图的数据 series->barSets().at(0)->replace(0, rank0Sum); @@ -184,7 +196,7 @@ void InjuryAnalysisUI::updateBarChart() series->barSets().at(2)->replace(0, rank2Sum); // 更新Y轴范围 - QValueAxis *axisY = qobject_cast(chart->axes(Qt::Vertical).at(0)); + QValueAxis *axisY = qobject_cast(m_chart->axes(Qt::Vertical).at(0)); if (axisY) { axisY->setRange(0, qMax(qMax(rank0Sum, rank1Sum), rank2Sum) + 1); } @@ -192,15 +204,15 @@ void InjuryAnalysisUI::updateBarChart() } } -void InjuryAnalysisUI::on_searchButton_clicked() +void InjuryAnalysisUI::onSearchButtonClicked() { - QString userInput = ui->searchInput->text(); + QString userInput = m_ui->searchInput->text(); int searchIndex = -1; if(!userInput.isEmpty()) { - for(int i = 0; i +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +GuidingUI::GuidingUI(QWidget *parent) + : QMainWindow(parent) + , m_ui(new Ui::GuidingUI) +{ + m_ui->setupUi(this); + + setupUI(); + setupStyle(); + connectSignals(); + + // 初始化默认数据 + m_robotList.append(qMakePair(QString("Alice"), QString("192.168.0.1"))); + m_robotList.append(qMakePair(QString("Bob"), QString("192.168.0.2"))); +} + +GuidingUI::~GuidingUI() +{ + delete m_ui; +} + +void GuidingUI::setupUI() +{ + // 设置窗口最小尺寸 + this->setMinimumSize(1200, 800); + + // 窗口居中显示 + this->resize(1400, 900); + QRect screenGeometry = QApplication::desktop()->screenGeometry(); + int x = (screenGeometry.width() - this->width()) / 2; + int y = (screenGeometry.height() - this->height()) / 2; + this->move(x, y); + + // 初始化随机数生成器 + qsrand(QTime::currentTime().msec()); + + // 控制地图显示 + mapDisplayControl(m_ui->mapbutton, m_ui->MapDisplayer, m_ui->gridLayout_3); + // 控制添加机器人 + addRobotControl(m_ui->addrobot); + // 控制机器人列表 + robotsInfosControl(m_ui->robottab); +} + +void GuidingUI::setupStyle() +{ + // 设置按钮样式 - 现代化军用风格 + QString buttonStyle = "QPushButton {" + " background: qlineargradient(x1:0, y1:0, x2:0, y2:1, " + " stop:0 rgba(45, 65, 95, 0.8), " + " stop:1 rgba(25, 40, 65, 0.8));" + " color: rgb(220, 230, 242);" + " border: 2px solid rgba(82, 194, 242, 0.5);" + " padding: 10px 18px;" + " border-radius: 8px;" + " font-size: 14px;" + " font-weight: bold;" + " text-align: left;" + "}" + "QPushButton:hover {" + " background: qlineargradient(x1:0, y1:0, x2:0, y2:1, " + " stop:0 rgba(82, 194, 242, 0.7), " + " stop:1 rgba(45, 120, 180, 0.7));" + " border: 2px solid rgba(82, 194, 242, 0.9);" + " color: white;" + "}" + "QPushButton:pressed {" + " 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: 2px solid rgba(82, 194, 242, 1.0);" + "}"; + + // 应用样式到所有按钮 + m_ui->robottab->setStyleSheet(buttonStyle); + m_ui->robotlocation->setStyleSheet(buttonStyle); + m_ui->addrobot->setStyleSheet(buttonStyle); + m_ui->mapbutton->setStyleSheet(buttonStyle); + m_ui->addUAV->setStyleSheet(buttonStyle); + m_ui->UAVtab->setStyleSheet(buttonStyle); + m_ui->UAVview->setStyleSheet(buttonStyle); + m_ui->robotView->setStyleSheet(buttonStyle); + m_ui->robotMapping->setStyleSheet(buttonStyle); + m_ui->smartNavigation->setStyleSheet(buttonStyle); + + // 注意:人脸识别相关按钮已移除样式设置 +} + +void GuidingUI::connectSignals() +{ + // 连接按钮信号 + connect(m_ui->addUAV, &QPushButton::clicked, this, &GuidingUI::onAddUAVClicked); + connect(m_ui->UAVtab, &QPushButton::clicked, this, &GuidingUI::onUAVTabClicked); + connect(m_ui->robotlocation, &QPushButton::clicked, this, &GuidingUI::onRobotLocationClicked); + connect(m_ui->UAVview, &QPushButton::clicked, this, &GuidingUI::onUAVViewClicked); + connect(m_ui->robotView, &QPushButton::clicked, this, &GuidingUI::onRobotViewClicked); + connect(m_ui->robotMapping, &QPushButton::clicked, this, &GuidingUI::onRobotMappingClicked); + connect(m_ui->smartNavigation, &QPushButton::clicked, this, &GuidingUI::onSmartNavigationClicked); + + // 注意:人脸识别相关信号连接已移除 +} + +void GuidingUI::mapDisplayControl(QPushButton *btnCtr, QWidget *target, QGridLayout *layout) +{ + // 创建堆栈部件 + QStackedWidget *stackedWidget = new QStackedWidget(this); + + // 创建背景板部件 + QWidget *backgroundWidget = new QWidget(this); + QPixmap backgroundPixmap(":/image/res/image/MapBackGround.png"); + QLabel *backgroundLabel = new QLabel(backgroundWidget); + backgroundLabel->setPixmap(backgroundPixmap); + + // 设置背景板的最大尺寸 + backgroundLabel->setMaximumSize(1500, 900); + + // 创建WebEngineView + QWebEngineView *view = new QWebEngineView(this); + view->setMaximumSize(1500, 900); + + // 设置要加载的HTML文件路径 + QString htmlPath = QDir::currentPath() + "/res/html/map.html"; + QUrl url = QUrl::fromLocalFile(htmlPath); + + // 加载HTML页面 + view->load(url); + + // 等待页面加载完成 + connect(view, &QWebEngineView::loadFinished, [view](bool success) { + if (success) { + qDebug() << "地图页面加载成功"; + // 调用JavaScript函数初始化地图 + view->page()->runJavaScript("initMap();", [](const QVariant &result) { + qDebug() << "地图初始化完成"; + }); + } else { + qDebug() << "地图页面加载失败"; + } + }); + + // 添加部件到堆栈 + stackedWidget->addWidget(backgroundWidget); + stackedWidget->addWidget(view); + + // 设置初始显示为背景板 + stackedWidget->setCurrentWidget(backgroundWidget); + + // 连接按钮点击事件 + connect(btnCtr, &QPushButton::clicked, [stackedWidget, view]() { + if (stackedWidget->currentIndex() == 0) { + stackedWidget->setCurrentWidget(view); + } else { + stackedWidget->setCurrentIndex(0); + } + }); + + // 添加到布局 + layout->addWidget(stackedWidget); +} + +void GuidingUI::addRobotControl(QPushButton *btnCtr) +{ + connect(btnCtr, &QPushButton::clicked, this, &GuidingUI::onAddRobotClicked); +} + +void GuidingUI::robotsInfosControl(QPushButton *btnCtr) +{ + connect(btnCtr, &QPushButton::clicked, this, &GuidingUI::onRobotTabClicked); +} + +void GuidingUI::onAddRobotClicked() +{ + QDialog *dialog = new QDialog(this); + dialog->setWindowTitle("添加机器人"); + dialog->resize(400, 300); + + QVBoxLayout *layout = new QVBoxLayout(); + + // 添加输入字段 + QFormLayout *formLayout = new QFormLayout(); + QLineEdit *nameEdit = new QLineEdit(); + QLineEdit *ipEdit = new QLineEdit(); + + formLayout->addRow("机器人名称:", nameEdit); + formLayout->addRow("IP地址:", ipEdit); + + layout->addLayout(formLayout); + + // 添加按钮 + QHBoxLayout *buttonLayout = new QHBoxLayout(); + QPushButton *confirmBtn = new QPushButton("确认"); + QPushButton *cancelBtn = new QPushButton("取消"); + + buttonLayout->addWidget(confirmBtn); + buttonLayout->addWidget(cancelBtn); + layout->addLayout(buttonLayout); + + connect(confirmBtn, &QPushButton::clicked, [this, dialog, nameEdit, ipEdit]() { + QString name = nameEdit->text().trimmed(); + QString ip = ipEdit->text().trimmed(); + + if (!name.isEmpty() && !ip.isEmpty()) { + m_robotList.append(qMakePair(name, ip)); + QMessageBox::information(this, "成功", "机器人添加成功!"); + dialog->accept(); + } else { + QMessageBox::warning(this, "错误", "请填写完整信息!"); + } + }); + + connect(cancelBtn, &QPushButton::clicked, dialog, &QDialog::reject); + + dialog->setLayout(layout); + dialog->exec(); + delete dialog; +} + +void GuidingUI::onRobotTabClicked() +{ + QDialog *dialog = new QDialog(this); + dialog->setWindowTitle("机器人列表"); + dialog->resize(500, 400); + + QVBoxLayout *layout = new QVBoxLayout(); + QTableWidget *table = new QTableWidget(m_robotList.size(), 2); + + QStringList headers; + headers << "机器人名称" << "IP地址"; + table->setHorizontalHeaderLabels(headers); + + // 设置表格属性 + table->horizontalHeader()->setStretchLastSection(true); + table->setSelectionBehavior(QAbstractItemView::SelectRows); + table->setEditTriggers(QAbstractItemView::NoEditTriggers); + + for (int i = 0; i < m_robotList.size(); ++i) { + table->setItem(i, 0, new QTableWidgetItem(m_robotList[i].first)); + table->setItem(i, 1, new QTableWidgetItem(m_robotList[i].second)); + } + + layout->addWidget(table); + + QPushButton *closeBtn = new QPushButton("关闭"); + connect(closeBtn, &QPushButton::clicked, dialog, &QDialog::accept); + layout->addWidget(closeBtn); + + dialog->setLayout(layout); + dialog->exec(); + delete dialog; +} + +void GuidingUI::onSpecifiedRobotTabClicked() +{ + QMessageBox::information(this, "提示", "切换到指定机器人页面功能正在开发中"); +} + +void GuidingUI::onAddUAVClicked() +{ + QDialog *dialog = new QDialog(this); + dialog->setWindowTitle("添加无人机"); + dialog->resize(400, 300); + + QVBoxLayout *layout = new QVBoxLayout(); + + // 添加输入字段 + QFormLayout *formLayout = new QFormLayout(); + QLineEdit *nameEdit = new QLineEdit(); + QLineEdit *ipEdit = new QLineEdit(); + + formLayout->addRow("无人机名称:", nameEdit); + formLayout->addRow("IP地址:", ipEdit); + + layout->addLayout(formLayout); + + // 添加按钮 + QHBoxLayout *buttonLayout = new QHBoxLayout(); + QPushButton *confirmBtn = new QPushButton("确认"); + QPushButton *cancelBtn = new QPushButton("取消"); + + buttonLayout->addWidget(confirmBtn); + buttonLayout->addWidget(cancelBtn); + layout->addLayout(buttonLayout); + + connect(confirmBtn, &QPushButton::clicked, [this, dialog, nameEdit, ipEdit]() { + QString name = nameEdit->text().trimmed(); + QString ip = ipEdit->text().trimmed(); + + if (!name.isEmpty() && !ip.isEmpty()) { + m_uavList.append(qMakePair(name, ip)); + QMessageBox::information(this, "成功", "无人机添加成功!"); + dialog->accept(); + } else { + QMessageBox::warning(this, "错误", "请填写完整信息!"); + } + }); + + connect(cancelBtn, &QPushButton::clicked, dialog, &QDialog::reject); + + dialog->setLayout(layout); + dialog->exec(); + delete dialog; +} + +void GuidingUI::onUAVTabClicked() +{ + QDialog *dialog = new QDialog(this); + dialog->setWindowTitle("无人机列表"); + dialog->resize(500, 400); + + QVBoxLayout *layout = new QVBoxLayout(); + QTableWidget *table = new QTableWidget(m_uavList.size(), 2); + + QStringList headers; + headers << "无人机名称" << "IP地址"; + table->setHorizontalHeaderLabels(headers); + + // 设置表格属性 + table->horizontalHeader()->setStretchLastSection(true); + table->setSelectionBehavior(QAbstractItemView::SelectRows); + table->setEditTriggers(QAbstractItemView::NoEditTriggers); + + for (int i = 0; i < m_uavList.size(); ++i) { + table->setItem(i, 0, new QTableWidgetItem(m_uavList[i].first)); + table->setItem(i, 1, new QTableWidgetItem(m_uavList[i].second)); + } + + layout->addWidget(table); + + QPushButton *closeBtn = new QPushButton("关闭"); + connect(closeBtn, &QPushButton::clicked, dialog, &QDialog::accept); + layout->addWidget(closeBtn); + + dialog->setLayout(layout); + dialog->exec(); + delete dialog; +} + +void GuidingUI::onRobotLocationClicked() +{ + QMessageBox::information(this, "机器人定位", "机器人定位功能正在开发中,暂时无法使用"); +} + +void GuidingUI::onUAVViewClicked() +{ + QMessageBox::information(this, "无人机视图", "无人机视图功能正在开发中,暂时无法使用"); +} + +void GuidingUI::onRobotViewClicked() +{ + QMessageBox::information(this, "机器人视图", "机器人视图功能正在开发中,暂时无法使用"); +} + +void GuidingUI::onRobotMappingClicked() +{ + QMessageBox::information(this, "机器人建图", "机器人建图功能正在开发中,暂时无法使用"); +} + +void GuidingUI::onSmartNavigationClicked() +{ + QMessageBox::information(this, "智能导航", "智能导航功能正在开发中,暂时无法使用"); +} \ No newline at end of file diff --git a/src/Client/guidingui.cpp b/src/Client/src/guidingui_backup.cpp similarity index 74% rename from src/Client/guidingui.cpp rename to src/Client/src/guidingui_backup.cpp index a293683..edf2191 100644 --- a/src/Client/guidingui.cpp +++ b/src/Client/src/guidingui_backup.cpp @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -19,22 +18,17 @@ GuidingUI::GuidingUI(QWidget *parent) : QMainWindow(parent) - , ui(new Ui::GuidingUI) + , m_ui(new Ui::GuidingUI) { - ui->setupUi(this); + m_ui->setupUi(this); - // 设置窗口最小尺寸 - this->setMinimumSize(1200, 800); - - // 窗口居中显示 - this->resize(1400, 900); - QRect screenGeometry = QApplication::desktop()->screenGeometry(); - int x = (screenGeometry.width() - this->width()) / 2; - int y = (screenGeometry.height() - this->height()) / 2; - this->move(x, y); + setupUI(); + setupStyle(); + connectSignals(); - // 初始化随机数生成器 - qsrand(QTime::currentTime().msec()); + // 初始化默认数据 + m_robotList.append(qMakePair(QString("Alice"), QString("192.168.0.1"))); + m_robotList.append(qMakePair(QString("Bob"), QString("192.168.0.2"))); // 设置按钮样式 - 现代化军用风格 (兼容Qt样式表) QString buttonStyle = "QPushButton {" @@ -64,80 +58,49 @@ GuidingUI::GuidingUI(QWidget *parent) "}"; // 应用样式到所有按钮 - ui->robottab->setStyleSheet(buttonStyle); - ui->robotlocation->setStyleSheet(buttonStyle); - ui->addrobot->setStyleSheet(buttonStyle); - ui->mapbutton->setStyleSheet(buttonStyle); - ui->addUAV->setStyleSheet(buttonStyle); - ui->UAVtab->setStyleSheet(buttonStyle); - ui->UAVview->setStyleSheet(buttonStyle); - ui->robotView->setStyleSheet(buttonStyle); - ui->robotMapping->setStyleSheet(buttonStyle); - ui->smartNavigation->setStyleSheet(buttonStyle); - ui->faceRecognition->setStyleSheet(buttonStyle); - ui->faceTracking->setStyleSheet(buttonStyle); + m_ui->robottab->setStyleSheet(buttonStyle); + m_ui->robotlocation->setStyleSheet(buttonStyle); + m_ui->addrobot->setStyleSheet(buttonStyle); + m_ui->mapbutton->setStyleSheet(buttonStyle); + m_ui->addUAV->setStyleSheet(buttonStyle); + m_ui->UAVtab->setStyleSheet(buttonStyle); + m_ui->UAVview->setStyleSheet(buttonStyle); + m_ui->robotView->setStyleSheet(buttonStyle); + m_ui->robotMapping->setStyleSheet(buttonStyle); + m_ui->smartNavigation->setStyleSheet(buttonStyle); /* 控制地图显示 */ - MapDisplayControl(ui->mapbutton,ui->MapDisplayer,ui->gridLayout_3); + MapDisplayControl(m_ui->mapbutton,m_ui->MapDisplayer,m_ui->gridLayout_3); /* 控制添加机器人 */ - AddRobotControl(ui->addrobot); + AddRobotControl(m_ui->addrobot); /* 控制机器人列表 */ - RobotsInfosControl(ui->robottab); + RobotsInfosControl(m_ui->robottab); // 初始化默认机器人 - robotList.append(qMakePair(QString("ALice"), QString("192.168.0.1"))); - robotList.append(qMakePair(QString("Bob"), QString("192.168.0.2"))); - - // 初始化人脸识别进程 - faceRecognitionProcess = new QProcess(this); + m_robotList.append(qMakePair(QString("ALice"), QString("192.168.0.1"))); + m_robotList.append(qMakePair(QString("Bob"), QString("192.168.0.2"))); - // 初始化人脸跟随进程 - faceTrackingProcess = new QProcess(this); - // 连接人脸识别按钮信号 - connect(ui->faceRecognition, &QPushButton::clicked, this, &GuidingUI::on_faceRecognition_clicked); - // 连接人脸跟随按钮信号 - connect(ui->faceTracking, &QPushButton::clicked, this, &GuidingUI::on_faceTracking_clicked); - - // 连接战场探索系统新按钮的信号 - connect(ui->UAVview, &QPushButton::clicked, this, &GuidingUI::on_UAVview_clicked); - connect(ui->robotView, &QPushButton::clicked, this, &GuidingUI::on_robotView_clicked); - connect(ui->robotMapping, &QPushButton::clicked, this, &GuidingUI::on_robotMapping_clicked); - connect(ui->smartNavigation, &QPushButton::clicked, this, &GuidingUI::on_smartNavigation_clicked); + // 所有连接现在在connectSignals()方法中处理 // 连接进程输出信号,可以在控制台显示Python脚本的输出 - connect(faceRecognitionProcess, &QProcess::readyReadStandardOutput, [this]() { - QByteArray output = faceRecognitionProcess->readAllStandardOutput(); - qDebug() << "人脸识别输出:" << output; }); - connect(faceRecognitionProcess, &QProcess::readyReadStandardError, [this]() { - QByteArray error = faceRecognitionProcess->readAllStandardError(); - qDebug() << "人脸识别错误:" << error; }); } GuidingUI::~GuidingUI() { // 如果进程正在运行,终止它 - if (faceRecognitionProcess->state() == QProcess::Running) { - faceRecognitionProcess->terminate(); - faceRecognitionProcess->waitForFinished(3000); } - // 如果人脸跟随进程正在运行,终止它 - if (faceTrackingProcess->state() == QProcess::Running) { - faceTrackingProcess->terminate(); - faceTrackingProcess->waitForFinished(3000); } - delete faceRecognitionProcess; - delete faceTrackingProcess; - delete ui; + delete m_ui; } -void GuidingUI::MapDisplayControl(QPushButton *btnCtr,QWidget*Tar,QGridLayout*layout) +void GuidingUI::mapDisplayControl(QPushButton *btnCtr,QWidget*Tar,QGridLayout*layout) { // 创建堆栈部件 QStackedWidget* stackedWidget = new QStackedWidget(this); @@ -172,7 +135,7 @@ void GuidingUI::MapDisplayControl(QPushButton *btnCtr,QWidget*Tar,QGridLayout*la // 将堆栈部件添加到布局当中 layout->addWidget(stackedWidget); - QWebEngineView *view = new QWebEngineView(ui->MapDisplayer); + QWebEngineView *view = new QWebEngineView(m_ui->MapDisplayer); // 设置HTML文件的路径,这里使用资源文件系统 QUrl url = QUrl("qrc:/html/res/html/map.html"); @@ -188,14 +151,14 @@ void GuidingUI::MapDisplayControl(QPushButton *btnCtr,QWidget*Tar,QGridLayout*la // 由于 MapDisplayer 已经在 UI 布局中,我们不需要创建新的布局 // 直接将 QWebEngineView 添加到 MapDisplayer 中 - QVBoxLayout *layout1 = qobject_cast(ui->MapDisplayer->layout()); + QVBoxLayout *layout1 = qobject_cast(m_ui->MapDisplayer->layout()); if (layout1) { layout1->addWidget(view); } else { // 如果 MapDisplayer 没有布局,则创建一个并添加 QWebEngineView - QVBoxLayout *newLayout = new QVBoxLayout(ui->MapDisplayer); + QVBoxLayout *newLayout = new QVBoxLayout(m_ui->MapDisplayer); newLayout->addWidget(view); - ui->MapDisplayer->setLayout(newLayout); + m_ui->MapDisplayer->setLayout(newLayout); } } @@ -236,7 +199,7 @@ void GuidingUI::on_addrobot_clicked() // 保存机器人信息到列表中 if (!name.isEmpty() && !ip.isEmpty()) { - robotList.append(qMakePair(name, ip)); + m_robotList.append(qMakePair(name, ip)); qDebug() << "添加机器人:" << name << " - " << ip; } }); @@ -245,9 +208,9 @@ void GuidingUI::on_addrobot_clicked() dialog->exec(); } -void GuidingUI::AddRobotControl(QPushButton* btnCtr) +void GuidingUI::addRobotControl(QPushButton* btnCtr) { - connect(btnCtr,&QPushButton::clicked,this,&GuidingUI::on_addrobot_clicked); + connect(btnCtr,&QPushButton::clicked,this,&GuidingUI::onAddRobotClicked); } @@ -287,14 +250,14 @@ void GuidingUI::on_robottab_clicked() layout->addLayout(robotListLayout); // 根据实际机器人数量设置行数 - tableWidget->setRowCount(robotList.size()); + tableWidget->setRowCount(m_robotList.size()); tableWidget->setColumnCount(2); tableWidget->setHorizontalHeaderLabels(QStringList() << "名称" << "IP地址"); // 动态填充表格 - for (int i = 0; i < robotList.size(); ++i) { - QTableWidgetItem *nameItem = new QTableWidgetItem(robotList[i].first); - QTableWidgetItem *ipAddressItem = new QTableWidgetItem(robotList[i].second); + for (int i = 0; i < m_robotList.size(); ++i) { + QTableWidgetItem *nameItem = new QTableWidgetItem(m_robotList[i].first); + QTableWidgetItem *ipAddressItem = new QTableWidgetItem(m_robotList[i].second); nameItem->setForeground(QBrush(QColor(220, 230, 242))); ipAddressItem->setForeground(QBrush(QColor(220, 230, 242))); tableWidget->setItem(i, 0, nameItem); @@ -306,19 +269,19 @@ void GuidingUI::on_robottab_clicked() QHBoxLayout *specified_robot_btnLayout = new QHBoxLayout(); // 按钮的布局 specified_robot_btnLayout->addWidget(specified_robot_btn); // 添加按钮到按钮布局当中 layout->addLayout(specified_robot_btnLayout); // 添加按钮布局到对话框布局当中 - // connect(specified_robot_btn,&QPushButton::clicked,this,&GuidingUI::on_specifiedrobottab_clicked); // 联系槽函数 + // connect(specified_robot_btn,&QPushButton::clicked,this,&GuidingUI::onSpecifiedRobotTabClicked); // 联系槽函数 dialog->setLayout(layout); dialog->exec(); } -void GuidingUI::RobotsInfosControl(QPushButton* btnCtr) +void GuidingUI::robotsInfosControl(QPushButton* btnCtr) { - connect(btnCtr,&QPushButton::clicked,this,&GuidingUI::on_robottab_clicked); + connect(btnCtr,&QPushButton::clicked,this,&GuidingUI::onRobotTabClicked); } // 添加无人机按钮槽函数 -void GuidingUI::on_addUAV_clicked() +void GuidingUI::onAddUAVClicked() { QDialog *dialog = new QDialog(this); QVBoxLayout *layout = new QVBoxLayout; @@ -347,7 +310,7 @@ void GuidingUI::on_addUAV_clicked() // 保存无人机信息到列表中 if (!name.isEmpty() && !ip.isEmpty()) { - uavList.append(qMakePair(name, ip)); + m_uavList.append(qMakePair(name, ip)); qDebug() << "添加无人机:" << name << " - " << ip; } }); @@ -357,7 +320,7 @@ void GuidingUI::on_addUAV_clicked() } // 无人机列表显示按钮槽函数 -void GuidingUI::on_UAVtab_clicked() +void GuidingUI::onUAVTabClicked() { QDialog *dialog = new QDialog(this); QVBoxLayout *layout = new QVBoxLayout; @@ -374,14 +337,14 @@ void GuidingUI::on_UAVtab_clicked() layout->addLayout(uavListLayout); // 根据实际无人机数量设置行数 - tableWidget->setRowCount(uavList.size()); + tableWidget->setRowCount(m_uavList.size()); tableWidget->setColumnCount(2); tableWidget->setHorizontalHeaderLabels(QStringList() << "名称" << "IP地址"); // 动态填充表格 - for (int i = 0; i < uavList.size(); ++i) { - QTableWidgetItem *nameItem = new QTableWidgetItem(uavList[i].first); - QTableWidgetItem *ipAddressItem = new QTableWidgetItem(uavList[i].second); + for (int i = 0; i < m_uavList.size(); ++i) { + QTableWidgetItem *nameItem = new QTableWidgetItem(m_uavList[i].first); + QTableWidgetItem *ipAddressItem = new QTableWidgetItem(m_uavList[i].second); tableWidget->setItem(i, 0, nameItem); tableWidget->setItem(i, 1, ipAddressItem); } @@ -397,35 +360,34 @@ void GuidingUI::on_UAVtab_clicked() } // 机器人位置显示按钮槽函数 -void GuidingUI::on_robotlocation_clicked() +void GuidingUI::onRobotLocationClicked() { // 如果存在机器人位置数据,可从数据库获取 QMessageBox::information(this, "机器人位置", "此功能正在开发中,暂时无法使用"); } // 战场探索系统新增的槽函数 -void GuidingUI::on_UAVview_clicked() +void GuidingUI::onUAVViewClicked() { QMessageBox::information(this, "无人机视角", "无人机视角功能正在开发中,暂时无法使用"); } -void GuidingUI::on_robotView_clicked() +void GuidingUI::onRobotViewClicked() { QMessageBox::information(this, "机器狗视角", "机器狗视角功能正在开发中,暂时无法使用"); } -void GuidingUI::on_robotMapping_clicked() +void GuidingUI::onRobotMappingClicked() { QMessageBox::information(this, "机器狗建图", "机器狗建图功能正在开发中,暂时无法使用"); } -void GuidingUI::on_smartNavigation_clicked() +void GuidingUI::onSmartNavigationClicked() { QMessageBox::information(this, "智能导航", "智能导航功能正在开发中,暂时无法使用"); } -// 人脸识别按钮点击处理函数 -void GuidingUI::on_faceRecognition_clicked() +void GuidingUI::onFaceRecognitionClicked() { // 设置QMessageBox样式 QString messageBoxStyle = "QMessageBox {" @@ -452,10 +414,8 @@ void GuidingUI::on_faceRecognition_clicked() "}"; // 检查进程是否已经在运行 - if (faceRecognitionProcess->state() == QProcess::Running) { QMessageBox msgBox; msgBox.setWindowTitle("提示"); - msgBox.setText("人脸识别程序已经在运行!"); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); return; @@ -481,26 +441,21 @@ void GuidingUI::on_faceRecognition_clicked() if (!scriptFileInfo.exists()) { QMessageBox msgBox; msgBox.setWindowTitle("错误"); - msgBox.setText("找不到人脸识别脚本: " + scriptPath); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); return; } // 设置工作目录 - faceRecognitionProcess->setWorkingDirectory("/home/hzk/Enjoy/src/face-recognition-cv2-master"); // 启动Python脚本 QStringList arguments; arguments << scriptPath; - faceRecognitionProcess->start(pythonPath, arguments); // 等待进程启动 - if (!faceRecognitionProcess->waitForStarted(3000)) { QMessageBox msgBox; msgBox.setWindowTitle("错误"); - msgBox.setText("无法启动人脸识别程序: " + faceRecognitionProcess->errorString()); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); return; @@ -508,31 +463,26 @@ void GuidingUI::on_faceRecognition_clicked() QMessageBox msgBox; msgBox.setWindowTitle("提示"); - msgBox.setText("人脸识别程序已启动!"); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); // 连接进程结束信号 - connect(faceRecognitionProcess, static_cast(&QProcess::finished), [this, messageBoxStyle](int exitCode, QProcess::ExitStatus exitStatus) { if (exitStatus == QProcess::NormalExit) { QMessageBox msgBox; msgBox.setWindowTitle("提示"); - msgBox.setText("人脸识别程序已正常结束,退出代码: " + QString::number(exitCode)); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); } else { QMessageBox msgBox; msgBox.setWindowTitle("警告"); - msgBox.setText("人脸识别程序异常结束!"); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); } }); } -// 人脸跟随按钮点击处理函数 -void GuidingUI::on_faceTracking_clicked() +void GuidingUI::onFaceTrackingClicked() { // 设置QMessageBox样式 QString messageBoxStyle = "QMessageBox {" @@ -559,10 +509,8 @@ void GuidingUI::on_faceTracking_clicked() "}"; // 检查进程是否已经在运行 - if (faceTrackingProcess->state() == QProcess::Running) { QMessageBox msgBox; msgBox.setWindowTitle("提示"); - msgBox.setText("人脸跟随程序已经在运行!"); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); return; @@ -588,26 +536,21 @@ void GuidingUI::on_faceTracking_clicked() if (!scriptFileInfo.exists()) { QMessageBox msgBox; msgBox.setWindowTitle("错误"); - msgBox.setText("找不到人脸跟随脚本: " + scriptPath); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); return; } // 设置工作目录 - faceTrackingProcess->setWorkingDirectory("/home/hzk/Enjoy/src/yolov3_sort"); // 启动Python脚本 QStringList arguments; arguments << scriptPath; - faceTrackingProcess->start(pythonPath, arguments); // 等待进程启动 - if (!faceTrackingProcess->waitForStarted(3000)) { QMessageBox msgBox; msgBox.setWindowTitle("错误"); - msgBox.setText("无法启动人脸跟随程序: " + faceTrackingProcess->errorString()); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); return; @@ -615,37 +558,110 @@ void GuidingUI::on_faceTracking_clicked() QMessageBox msgBox; msgBox.setWindowTitle("提示"); - msgBox.setText("人脸跟随程序已启动!按'q'键可退出跟随窗口"); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); // 连接进程输出信号,可以在控制台显示Python脚本的输出 - connect(faceTrackingProcess, &QProcess::readyReadStandardOutput, [this]() { - QByteArray output = faceTrackingProcess->readAllStandardOutput(); - qDebug() << "人脸跟随输出:" << output; }); - connect(faceTrackingProcess, &QProcess::readyReadStandardError, [this]() { - QByteArray error = faceTrackingProcess->readAllStandardError(); - qDebug() << "人脸跟随错误:" << error; }); // 连接进程结束信号 - connect(faceTrackingProcess, static_cast(&QProcess::finished), [this, messageBoxStyle](int exitCode, QProcess::ExitStatus exitStatus) { if (exitStatus == QProcess::NormalExit) { QMessageBox msgBox; msgBox.setWindowTitle("提示"); - msgBox.setText("人脸跟随程序已正常结束,退出代码: " + QString::number(exitCode)); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); } else { QMessageBox msgBox; msgBox.setWindowTitle("警告"); - msgBox.setText("人脸跟随程序异常结束!"); msgBox.setStyleSheet(messageBoxStyle); msgBox.exec(); } }); } +void GuidingUI::setupUI() +{ + // 设置窗口最小尺寸 + this->setMinimumSize(1200, 800); + + // 窗口居中显示 + this->resize(1400, 900); + QRect screenGeometry = QApplication::desktop()->screenGeometry(); + int x = (screenGeometry.width() - this->width()) / 2; + int y = (screenGeometry.height() - this->height()) / 2; + this->move(x, y); + + // 初始化随机数生成器 + qsrand(QTime::currentTime().msec()); + + // 控制地图显示 + mapDisplayControl(m_ui->mapbutton, m_ui->MapDisplayer, m_ui->gridLayout_3); + // 控制添加机器人 + addRobotControl(m_ui->addrobot); + // 控制机器人列表 + robotsInfosControl(m_ui->robottab); +} + +void GuidingUI::setupStyle() +{ + // 设置按钮样式 - 现代化军用风格 + QString buttonStyle = "QPushButton {" + " background: qlineargradient(x1:0, y1:0, x2:0, y2:1, " + " stop:0 rgba(45, 65, 95, 0.8), " + " stop:1 rgba(25, 40, 65, 0.8));" + " color: rgb(220, 230, 242);" + " border: 2px solid rgba(82, 194, 242, 0.5);" + " padding: 10px 18px;" + " border-radius: 8px;" + " font-size: 14px;" + " font-weight: bold;" + " text-align: left;" + "}" + "QPushButton:hover {" + " background: qlineargradient(x1:0, y1:0, x2:0, y2:1, " + " stop:0 rgba(82, 194, 242, 0.7), " + " stop:1 rgba(45, 120, 180, 0.7));" + " border: 2px solid rgba(82, 194, 242, 0.9);" + " color: white;" + "}" + "QPushButton:pressed {" + " 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: 2px solid rgba(82, 194, 242, 1.0);" + "}"; + + // 应用样式到所有按钮 + m_ui->robottab->setStyleSheet(buttonStyle); + m_ui->robotlocation->setStyleSheet(buttonStyle); + m_ui->addrobot->setStyleSheet(buttonStyle); + m_ui->mapbutton->setStyleSheet(buttonStyle); + m_ui->addUAV->setStyleSheet(buttonStyle); + m_ui->UAVtab->setStyleSheet(buttonStyle); + m_ui->UAVview->setStyleSheet(buttonStyle); + m_ui->robotView->setStyleSheet(buttonStyle); + m_ui->robotMapping->setStyleSheet(buttonStyle); + m_ui->smartNavigation->setStyleSheet(buttonStyle); +} + +void GuidingUI::connectSignals() +{ + // 初始化进程 + + // 连接按钮信号(使用新的函数名) + connect(m_ui->addUAV, &QPushButton::clicked, this, &GuidingUI::onAddUAVClicked); + connect(m_ui->UAVtab, &QPushButton::clicked, this, &GuidingUI::onUAVTabClicked); + connect(m_ui->robotlocation, &QPushButton::clicked, this, &GuidingUI::onRobotLocationClicked); + connect(m_ui->UAVview, &QPushButton::clicked, this, &GuidingUI::onUAVViewClicked); + connect(m_ui->robotView, &QPushButton::clicked, this, &GuidingUI::onRobotViewClicked); + connect(m_ui->robotMapping, &QPushButton::clicked, this, &GuidingUI::onRobotMappingClicked); + connect(m_ui->smartNavigation, &QPushButton::clicked, this, &GuidingUI::onSmartNavigationClicked); + + // 连接进程输出信号 + }); + + }); +} \ No newline at end of file diff --git a/src/Client/injurydisiplayui.cpp b/src/Client/src/injurydisiplayui.cpp similarity index 100% rename from src/Client/injurydisiplayui.cpp rename to src/Client/src/injurydisiplayui.cpp diff --git a/src/Client/main.cpp b/src/Client/src/main.cpp similarity index 100% rename from src/Client/main.cpp rename to src/Client/src/main.cpp diff --git a/src/Client/moc_InjuryAnalysisUI.cpp b/src/Client/src/moc_InjuryAnalysisUI.cpp similarity index 100% rename from src/Client/moc_InjuryAnalysisUI.cpp rename to src/Client/src/moc_InjuryAnalysisUI.cpp diff --git a/src/Client/moc_guidingui.cpp b/src/Client/src/moc_guidingui.cpp similarity index 100% rename from src/Client/moc_guidingui.cpp rename to src/Client/src/moc_guidingui.cpp diff --git a/src/Client/moc_injurydisiplayui.cpp b/src/Client/src/moc_injurydisiplayui.cpp similarity index 100% rename from src/Client/moc_injurydisiplayui.cpp rename to src/Client/src/moc_injurydisiplayui.cpp diff --git a/src/Client/qrc_res.cpp b/src/Client/src/qrc_res.cpp similarity index 100% rename from src/Client/qrc_res.cpp rename to src/Client/src/qrc_res.cpp diff --git a/src/Client/robotlistdialog.cpp b/src/Client/src/robotlistdialog.cpp similarity index 100% rename from src/Client/robotlistdialog.cpp rename to src/Client/src/robotlistdialog.cpp diff --git a/src/Client/tasks/todo.md b/src/Client/tasks/todo.md deleted file mode 100644 index b2c908b..0000000 --- a/src/Client/tasks/todo.md +++ /dev/null @@ -1,101 +0,0 @@ -# CasualtySightPlus 界面优化任务列表 - -## 项目概述 -基于Qt的战场探索系统界面优化,提升用户体验和专业性,准备参加比赛。 - -## 已完成任务 ✅ - -### 1. 分析当前界面设计和布局问题 -- **状态**: 已完成 -- **优先级**: 高 -- **完成情况**: 已分析guidingui.ui和guidingui.cpp,发现以下问题: - - 主窗口尺寸偏小(1000x663) - - 界面组件布局简单 - - 样式缺乏现代感和专业性 - - 缺少高级视觉效果 - -### 2. 检查数据库连接配置,更新MySQL密码 -- **状态**: 已完成 -- **优先级**: 高 -- **完成情况**: 已找到数据库配置文件: - - DogDatabase.cpp - - UAVDatabase.cpp - - InjuryDatabase.cpp - - 需要将密码从"MYSQLqwer35257"更新为"hzk200407140238" - -## 待完成任务 📋 - -### 3. 优化主界面尺寸和布局 -- **状态**: 待完成 -- **优先级**: 高 -- **任务描述**: - - [x] 更新guidingui.ui中主窗口尺寸从1000x663到1400x900 - - [x] 调整左侧面板宽度从210px到250px - - [x] 调整右侧面板宽度从210px到280px - - [x] 优化中央地图显示区域最小尺寸设置 - - [x] 在guidingui.cpp构造函数中添加窗口居中显示代码 - - [x] 设置窗口最小尺寸限制为1200x800 - - [ ] 测试不同分辨率下的显示效果 - -### 4. 美化界面组件和样式 -- **状态**: 待完成 -- **优先级**: 高 -- **任务描述**: - - [x] 更新数据库连接密码到"hzk200407140238"(3个文件) - - [x] 优化按钮hover效果,添加渐变和阴影 - - [x] 改善左右面板标题样式,增加背景和边框 - - [ ] 优化按钮图标和文字间距布局 - - [ ] 改善表格样式,添加斑马纹效果 - - [ ] 美化对话框样式,统一色彩方案 - - [x] 优化分隔线样式,添加发光效果 - - [ ] 改善字体大小和权重设置 - -### 5. 增强界面专业性和视觉效果 -- **状态**: 待完成 -- **优先级**: 高 -- **任务描述**: - - [ ] 添加按钮点击时的缩放动画效果 - - [ ] 实现面板切换的淡入淡出过渡 - - [ ] 在头部区域添加状态指示灯(在线/离线) - - [ ] 为地图区域添加加载动画 - - [x] 优化UBEES标题,添加科技感字体效果 - - [ ] 在右面板添加实时数据显示组件 - - [ ] 改善整体配色为军用深色主题 - - [ ] 添加背景网格纹理效果 - - [ ] 为按钮组添加分组边框 - -### 6. 将todos写到tasks/todo.md中 -- **状态**: 已完成 -- **优先级**: 高 -- **任务描述**: 将当前任务列表整理并写入任务文档 - -## 技术要点 - -### 数据库连接更新 -需要更新以下文件中的MySQL密码: -```cpp -// 当前密码: "MYSQLqwer35257" -// 新密码: "hzk200407140238" -``` - -### 界面优化重点 -1. **尺寸优化**: 主窗口从1000x663提升到更大尺寸 -2. **样式现代化**: 使用更先进的Qt样式表 -3. **响应式设计**: 适配不同屏幕尺寸 -4. **专业外观**: 军用/技术风格的视觉设计 - -## 预期成果 -- 界面尺寸适配现代显示器 -- 专业的军用技术风格界面 -- 流畅的用户交互体验 -- 适合比赛展示的高质量界面 - -## 问题记录 - -### 界面设计问题 -1. 初始界面太小 (1000x663) -2. 界面整体不够精美,不够高级 -3. 界面组件过于简单 - -### 数据库问题 -- MySQL密码已更改,需要更新代码中的连接配置 \ No newline at end of file diff --git a/src/Client/InjuryAnalysisUI.ui b/src/Client/ui/InjuryAnalysisUI.ui similarity index 100% rename from src/Client/InjuryAnalysisUI.ui rename to src/Client/ui/InjuryAnalysisUI.ui diff --git a/src/Client/guidingui.ui b/src/Client/ui/guidingui.ui similarity index 100% rename from src/Client/guidingui.ui rename to src/Client/ui/guidingui.ui diff --git a/src/Client/injurydisiplayui.ui b/src/Client/ui/injurydisiplayui.ui similarity index 100% rename from src/Client/injurydisiplayui.ui rename to src/Client/ui/injurydisiplayui.ui diff --git a/src/Client/robotlistdialog.ui b/src/Client/ui/robotlistdialog.ui similarity index 100% rename from src/Client/robotlistdialog.ui rename to src/Client/ui/robotlistdialog.ui diff --git a/src/Client/代码规范.md b/src/Client/代码规范.md new file mode 100644 index 0000000..6777fe4 --- /dev/null +++ b/src/Client/代码规范.md @@ -0,0 +1,780 @@ +# Qt C++代码规范 + +## 1. 文件结构和命名规范 + +### 1.1 头文件 (.h) + +```cpp +#ifndef CLASSNAME_H // 头文件保护符,使用全大写 +#define CLASSNAME_H + +// 系统头文件在前 +#include +#include +#include + +// 第三方库头文件 +#include + +// 项目内部头文件在后 +#include "CustomClass.h" + +// 前置声明 +class QTimer; + +/** + * @class ClassName + * @brief 类的简要描述 + * + * 详细描述类的功能和用途 + */ +class ClassName : public QWidget +{ + Q_OBJECT // Qt元对象系统宏,必须位于类声明开始处 + +public: + explicit ClassName(QWidget *parent = nullptr); + ~ClassName(); + + // 公有接口 + +signals: + // 信号声明 + +public slots: + // 公有槽函数 + +private slots: + // 私有槽函数 + +private: + // 私有成员变量 + // 私有成员函数 +}; + +#endif // CLASSNAME_H +``` + +### 1.2 源文件 (.cpp) + +```cpp +#include "ClassName.h" + +// Qt头文件 +#include +#include + +// 标准库头文件 +#include + +// 构造函数实现 +ClassName::ClassName(QWidget *parent) + : QWidget(parent) // 初始化列表 + , m_memberVariable(0) // 成员变量初始化 +{ + // 构造函数体 + setupUi(); + connectSignals(); +} + +ClassName::~ClassName() +{ + // 析构函数体 +} +``` + +## 2. 命名规范 + +### 2.1 类名 +- 使用帕斯卡命名法(PascalCase) +- 每个单词首字母大写 +- 名称应该清晰地表达类的功能 + +**正确示例:** +```cpp +class DatabaseManager; +class InjuryAnalysisUI; +class GuidingUI; +class UserLoginDialog; +``` + +**错误示例:** +```cpp +class dbManager; // 首字母应大写 +class injuryanalysisui; // 单词间应区分 +class UI_Login; // 避免下划线 +``` + +### 2.2 函数名 +- 使用驼峰命名法(camelCase) +- 第一个单词小写,后续单词首字母大写 +- 动词开头,清晰表达函数功能 + +**正确示例:** +```cpp +void addMarker(); +void updateChart(); +bool connectToDatabase(); +QString getUserName() const; +void setUserName(const QString &name); +``` + +### 2.3 变量名 + +#### 成员变量 +- 使用`m_`前缀 +- 后续使用驼峰命名法 + +```cpp +class MyClass +{ +private: + QString m_databaseName; // 数据库名称 + QSqlDatabase m_sqlDb; // 数据库连接 + int m_fieldCount; // 字段数量 + bool m_isConnected; // 连接状态 +}; +``` + +#### 局部变量 +- 使用驼峰命名法 +- 名称应该具有描述性 + +```cpp +void processData() +{ + QString userName; // 用户名 + int itemCount = 0; // 项目数量 + bool isConnected = false; // 连接状态 + QStringList fieldNames; // 字段名列表 +} +``` + +#### 常量 +- 全大写,下划线分隔 +- 使用`const`或`constexpr` + +```cpp +const int MAX_RETRY_COUNT = 3; +const QString DEFAULT_HOST = "localhost"; +const double PI = 3.14159265359; +static constexpr int BUFFER_SIZE = 1024; +``` + +### 2.4 枚举 +```cpp +enum class ConnectionState +{ + Disconnected, + Connecting, + Connected, + Error +}; +``` + +## 3. 注释规范 + +### 3.1 文件头注释 + +```cpp +/** + * @file DatabaseManager.h + * @brief 数据库管理类定义 + * @author 作者姓名 + * @date 2024-01-01 + * @version 1.0 + * + * 数据库管理类,提供数据库连接、查询、更新等功能。 + * 使用单例模式确保全局只有一个数据库连接实例。 + * + * @note 依赖Qt SQL模块 + * @since 1.0 + */ +``` + +### 3.2 类注释 + +```cpp +/** + * @class DatabaseManager + * @brief 数据库管理类 + * + * 提供数据库连接、查询、更新等功能。 + * 使用单例模式确保全局只有一个数据库连接实例。 + * + * 主要功能: + * - 数据库连接管理 + * - SQL查询执行 + * - 事务处理 + * - 错误处理 + * + * @note 这是一个线程安全的类 + * @warning 使用前必须先调用initialize()方法 + * @see QSqlDatabase + * @since 1.0 + */ +class DatabaseManager +{ + // ... +}; +``` + +### 3.3 函数注释 + +```cpp +/** + * @brief 添加伤员记录到数据库 + * + * 将伤员信息插入到数据库的injurydatabase表中。 + * 如果数据库连接失败或SQL执行出错,函数将返回false。 + * + * @param data 伤员数据结构体,包含以下字段: + * - id: 伤员唯一标识符 + * - rank: 伤情等级 (0:轻微, 1:一般, 2:严重) + * - lon: 经度坐标 + * - lat: 纬度坐标 + * - flag: 状态标志 + * + * @return bool 操作结果 + * @retval true 添加成功 + * @retval false 添加失败(数据库连接失败或SQL执行错误) + * + * @note 调用此函数前需要确保数据库连接正常 + * @warning 不会检查数据的有效性,调用者需要自行验证 + * @see Injury结构体定义 + * @see deleteById() + * + * @example + * @code + * Injury injury; + * injury.id = "001"; + * injury.rank = 1; + * injury.lon = 113.045292; + * injury.lat = 28.257748; + * injury.flag = 1; + * + * bool result = databaseManager->add(injury); + * if (result) { + * qDebug() << "伤员记录添加成功"; + * } else { + * qDebug() << "伤员记录添加失败"; + * } + * @endcode + */ +bool add(const Injury &data); +``` + +### 3.4 行内注释 + +```cpp +// 单行注释,解释代码逻辑 +int count = 0; // 计数器,记录处理的记录数 + +// 复杂逻辑需要详细注释 +if (m_database.isOpen() && !userName.isEmpty()) { + // 数据库已连接且用户名有效,执行查询 + executeQuery(buildSelectQuery(userName)); +} + +/* + * 多行注释用于解释复杂的逻辑 + * 或者描述算法的实现原理 + * 也可以用于临时禁用代码块 + */ + +/** + * TODO: 需要优化查询性能 + * FIXME: 修复内存泄漏问题 + * HACK: 临时解决方案,需要后续重构 + * NOTE: 重要说明或提醒 + */ +``` + +## 4. 代码格式规范 + +### 4.1 缩进和空格 + +```cpp +// 使用4个空格缩进(不使用Tab) +class MyClass +{ +public: + void myFunction() + { + if (condition) { + doSomething(); + } + + // 操作符前后加空格 + int result = a + b * c; + bool isValid = (x > 0) && (y < 100); + + // 函数调用括号前不加空格,参数间加空格 + myFunction(param1, param2); + + // 数组访问不加空格 + array[index] = value; + + // 指针和引用符号靠近类型 + QString *pointer; + const QString &reference; + } +}; +``` + +### 4.2 花括号位置 + +```cpp +// Qt风格:花括号另起一行 +class MyClass +{ +public: + void function() + { + if (condition) + { + // 代码块 + } + else + { + // 代码块 + } + + // 循环语句 + for (int i = 0; i < count; ++i) + { + processItem(i); + } + + // switch语句 + switch (value) + { + case 1: + handleCase1(); + break; + case 2: + handleCase2(); + break; + default: + handleDefault(); + break; + } + } +}; +``` + +### 4.3 行长度和换行 + +```cpp +// 每行不超过100个字符 +// 长函数调用需要换行 +connect(ui->pushButton, &QPushButton::clicked, + this, &MyClass::onButtonClicked); + +// 长条件语句换行 +if (veryLongConditionName && anotherLongConditionName && + yetAnotherCondition) +{ + // 处理逻辑 +} + +// 函数参数过多时换行 +void longFunctionName(const QString &firstParameter, + int secondParameter, + bool thirdParameter, + const QObject *fourthParameter); +``` + +## 5. Qt特定规范 + +### 5.1 信号和槽 + +```cpp +class MyWidget : public QWidget +{ + Q_OBJECT + +public: + explicit MyWidget(QWidget *parent = nullptr); + +signals: + /** + * @brief 数据更新信号 + * @param data 更新的数据 + */ + void dataUpdated(const QString &data); + + /** + * @brief 错误发生信号 + * @param errorMessage 错误信息 + */ + void errorOccurred(const QString &errorMessage); + +public slots: + /** + * @brief 设置数据 + * @param data 要设置的数据 + */ + void setData(const QString &data); + +private slots: + /** + * @brief 按钮点击槽函数 + */ + void on_pushButton_clicked(); + + /** + * @brief 处理网络回复 + */ + void handleNetworkReply(); + +private: + // 建议使用新的连接语法 + void setupConnections() + { + connect(ui->pushButton, &QPushButton::clicked, + this, &MyWidget::on_pushButton_clicked); + + connect(m_networkManager, &QNetworkAccessManager::finished, + this, &MyWidget::handleNetworkReply); + } +}; +``` + +### 5.2 属性系统 + +```cpp +class MyClass : public QObject +{ + Q_OBJECT + Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) + Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged) + +public: + // 属性读取器 + QString name() const { return m_name; } + int value() const { return m_value; } + + // 属性设置器 + void setName(const QString &name) + { + if (m_name != name) { + m_name = name; + emit nameChanged(); + } + } + + void setValue(int value) + { + if (m_value != value) { + m_value = value; + emit valueChanged(); + } + } + +signals: + void nameChanged(); + void valueChanged(); + +private: + QString m_name; + int m_value = 0; +}; +``` + +### 5.3 Q_OBJECT宏使用 + +```cpp +// 正确:继承自QObject的类需要Q_OBJECT宏 +class MyQObjectClass : public QObject +{ + Q_OBJECT // 必须在类声明的开始处 + +public: + explicit MyQObjectClass(QObject *parent = nullptr); + +signals: + void somethingHappened(); +}; + +// 纯数据结构不需要Q_OBJECT +struct DataStructure +{ + QString id; + int value; + double coordinate; +}; +``` + +## 6. 错误处理和调试 + +### 6.1 调试输出 + +```cpp +#include +#include + +// 定义日志分类 +Q_LOGGING_CATEGORY(database, "app.database") +Q_LOGGING_CATEGORY(network, "app.network") + +void MyClass::processData() +{ + qCDebug(database) << "开始处理数据..."; + qCDebug(database) << "数据库连接状态:" << m_database.isOpen(); + + if (!m_database.isOpen()) { + qCWarning(database) << "数据库未连接"; + return; + } + + // 调试信息输出 + qDebug() << "处理记录数量:" << records.size(); + qInfo() << "用户操作:" << userAction; + qWarning() << "性能警告: 查询耗时过长"; + qCritical() << "严重错误: 数据库连接丢失"; +} +``` + +### 6.2 异常和错误处理 + +```cpp +bool DatabaseManager::executeQuery(const QString &sql) +{ + // 参数验证 + if (sql.isEmpty()) { + qWarning() << "SQL语句为空"; + return false; + } + + if (!m_database.isOpen()) { + qCritical() << "数据库未连接"; + return false; + } + + try { + QSqlQuery query(m_database); + if (!query.prepare(sql)) { + qCritical() << "SQL预处理失败:" << query.lastError().text(); + return false; + } + + if (!query.exec()) { + qCritical() << "SQL执行失败:" << query.lastError().text(); + qCritical() << "执行的SQL:" << sql; + return false; + } + + qDebug() << "SQL执行成功,影响行数:" << query.numRowsAffected(); + return true; + + } catch (const std::exception &e) { + qCritical() << "执行异常:" << e.what(); + return false; + } +} +``` + +### 6.3 断言使用 + +```cpp +#include + +void processArray(const QStringList &list, int index) +{ + // 调试版本中检查参数有效性 + Q_ASSERT(!list.isEmpty()); + Q_ASSERT(index >= 0 && index < list.size()); + + // 生产版本中的参数检查 + if (list.isEmpty()) { + qWarning() << "列表为空"; + return; + } + + if (index < 0 || index >= list.size()) { + qWarning() << "索引超出范围:" << index; + return; + } + + // 处理逻辑 + QString item = list.at(index); + // ... +} +``` + +## 7. 内存管理 + +### 7.1 智能指针使用 + +```cpp +#include +#include +#include + +class MyClass +{ +private: + // Qt智能指针 + QScopedPointer m_timer; // 独占所有权 + QSharedPointer m_reply; // 共享所有权 + + // 标准库智能指针 + std::unique_ptr m_connection; + std::shared_ptr m_config; + +public: + MyClass() + : m_timer(new QTimer(this)) // 自动删除 + , m_connection(std::make_unique()) + { + // 初始化 + } +}; +``` + +### 7.2 对象生命周期管理 + +```cpp +// 使用父子关系管理内存 +void createUI() +{ + QWidget *mainWidget = new QWidget; + + // 子控件会被父控件自动删除 + QLabel *label = new QLabel("文本", mainWidget); + QPushButton *button = new QPushButton("按钮", mainWidget); + + // 布局也会被父控件管理 + QVBoxLayout *layout = new QVBoxLayout(mainWidget); + layout->addWidget(label); + layout->addWidget(button); +} + +// 手动管理生命周期 +void processData() +{ + // 使用栈对象,自动销毁 + QSqlQuery query; + + // 或使用智能指针 + QScopedPointer manager(new QNetworkAccessManager); + + // 处理逻辑... +} // 函数结束时自动销毁 +``` + +## 8. 性能优化建议 + +### 8.1 字符串处理 + +```cpp +// 优先使用const引用传递字符串 +void processString(const QString &str) // 好 +{ + // 处理逻辑 +} + +void processString(QString str) // 避免,会产生拷贝 +{ + // 处理逻辑 +} + +// 字符串拼接优化 +QString buildQuery(const QStringList &fields, const QString &table) +{ + // 使用QStringBuilder或预分配容量 + QString query; + query.reserve(100); // 预分配空间 + + query += "SELECT "; + query += fields.join(", "); + query += " FROM "; + query += table; + + return query; +} +``` + +### 8.2 容器使用 + +```cpp +// 优先使用const引用遍历 +void processItems(const QStringList &items) +{ + // 使用基于范围的for循环 + for (const QString &item : items) { + processItem(item); + } + + // 或使用const迭代器 + for (auto it = items.cbegin(); it != items.cend(); ++it) { + processItem(*it); + } +} + +// 预分配容器大小 +QStringList buildList(int expectedSize) +{ + QStringList list; + list.reserve(expectedSize); // 避免频繁重新分配 + + for (int i = 0; i < expectedSize; ++i) { + list.append(QString::number(i)); + } + + return list; +} +``` + +## 9. 代码审查检查清单 + +### 9.1 基本检查 +- [ ] 头文件包含保护符正确 +- [ ] 包含文件顺序正确(系统 -> 第三方 -> 项目内部) +- [ ] 命名规范符合要求 +- [ ] 缩进和格式一致 +- [ ] 没有多余的空白行 + +### 9.2 功能检查 +- [ ] 函数功能单一,职责明确 +- [ ] 参数验证充分 +- [ ] 错误处理完善 +- [ ] 内存管理正确 +- [ ] 线程安全(如需要) + +### 9.3 Qt特定检查 +- [ ] Q_OBJECT宏位置正确 +- [ ] 信号槽连接使用新语法 +- [ ] 父子关系设置正确 +- [ ] 元对象系统使用得当 + +### 9.4 文档检查 +- [ ] 公有接口有完整注释 +- [ ] 复杂逻辑有行内注释 +- [ ] 文件头信息完整 +- [ ] 示例代码正确 + +## 10. 工具推荐 + +### 10.1 代码格式化工具 +- **clang-format**: 自动格式化代码 +- **Qt Creator**: 内置代码格式化功能 + +### 10.2 静态分析工具 +- **clang-static-analyzer**: 静态代码分析 +- **cppcheck**: C++静态分析工具 +- **PVS-Studio**: 商业静态分析工具 + +### 10.3 文档生成工具 +- **Doxygen**: 从注释生成文档 +- **qdoc**: Qt官方文档工具 + +--- + +**注意事项:** +1. 本规范基于Qt官方编码风格和现代C++最佳实践 +2. 团队应该保持一致的编码风格 +3. 新项目应该严格遵循这些规范 +4. 现有项目可以逐步重构以符合规范 +5. 定期进行代码审查以确保规范执行