From 0c9293d33940925006b46852b2a5260e5f6d6e45 Mon Sep 17 00:00:00 2001 From: huaijin <3165620677@qq.com> Date: Sun, 13 Jul 2025 09:06:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=8D=E7=AB=AF=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Client/BattlefieldExplorationSystem.pro | 2 ++ src/Client/include/ui/main/MainWindow.h | 4 +-- src/Client/src/ui/main/MainWindow.cpp | 38 ++++++++++++--------- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/src/Client/BattlefieldExplorationSystem.pro b/src/Client/BattlefieldExplorationSystem.pro index e0ba36ec..c84cdce6 100644 --- a/src/Client/BattlefieldExplorationSystem.pro +++ b/src/Client/BattlefieldExplorationSystem.pro @@ -31,6 +31,7 @@ SOURCES += \ src/ui/main/MainWindow.cpp \ src/ui/dialogs/DeviceDialog.cpp \ src/ui/dialogs/EnemyStatsDialog.cpp \ + src/ui/dialogs/RobotDogControlDialog.cpp \ src/ui/components/DeviceCard.cpp \ src/ui/components/DeviceListPanel.cpp \ src/ui/components/SystemLogPanel.cpp \ @@ -51,6 +52,7 @@ HEADERS += \ include/ui/main/MainWindow.h \ include/ui/dialogs/DeviceDialog.h \ include/ui/dialogs/EnemyStatsDialog.h \ + include/ui/dialogs/RobotDogControlDialog.h \ include/ui/components/DeviceCard.h \ include/ui/components/DeviceListPanel.h \ include/ui/components/SystemLogPanel.h \ diff --git a/src/Client/include/ui/main/MainWindow.h b/src/Client/include/ui/main/MainWindow.h index 909fa196..da9e943b 100644 --- a/src/Client/include/ui/main/MainWindow.h +++ b/src/Client/include/ui/main/MainWindow.h @@ -46,7 +46,7 @@ #include "ui/components/RightFunctionPanel.h" #include "ui/dialogs/EnemyStatsDialog.h" // #include "ui/dialogs/DroneControlDialog.h" -// #include "ui/dialogs/RobotDogControlDialog.h" +#include "ui/dialogs/RobotDogControlDialog.h" // 标准库头文件 #include @@ -352,7 +352,7 @@ private: // 控制对话框(暂时注释掉以避免编译问题) // DroneControlDialog *m_droneControlDialog; ///< 无人机控制对话框 - // RobotDogControlDialog *m_robotDogControlDialog; ///< 机器狗控制对话框 + RobotDogControlDialog *m_robotDogControlDialog; ///< 机器狗控制对话框 // 敌情统计对话框 EnemyStatsDialog *m_enemyStatsDialog; ///< 敌情统计对话框 diff --git a/src/Client/src/ui/main/MainWindow.cpp b/src/Client/src/ui/main/MainWindow.cpp index 8604af53..7e99f1ab 100644 --- a/src/Client/src/ui/main/MainWindow.cpp +++ b/src/Client/src/ui/main/MainWindow.cpp @@ -61,7 +61,7 @@ MainWindow::MainWindow(QWidget *parent) , m_enemyStatsDialog(nullptr) , m_visionProcess(nullptr) // , m_droneControlDialog(nullptr) - // , m_robotDogControlDialog(nullptr) + , m_robotDogControlDialog(nullptr) { m_ui->setupUi(this); @@ -71,7 +71,7 @@ MainWindow::MainWindow(QWidget *parent) // 初始化现代样式管理器 initializeModernStyles(); - + // 初始化默认数据 m_robotList.append(qMakePair(QString("Alice"), QString("192.168.0.1"))); m_robotList.append(qMakePair(QString("Bob"), QString("192.168.0.2"))); @@ -91,10 +91,10 @@ MainWindow::~MainWindow() // delete m_droneControlDialog; // m_droneControlDialog = nullptr; // } - // if (m_robotDogControlDialog) { - // delete m_robotDogControlDialog; - // m_robotDogControlDialog = nullptr; - // } + if (m_robotDogControlDialog) { + delete m_robotDogControlDialog; + m_robotDogControlDialog = nullptr; + } // 停止并清理视觉识别进程 if (m_visionProcess) { @@ -1207,7 +1207,7 @@ void MainWindow::onEnemyStatsRequested() // 连接敌情数据更新信号 connect(m_enemyStatsDialog, &EnemyStatsDialog::enemyDataUpdated, [this](int totalCount, int highThreatCount) { - SystemLogger::getInstance()->logInfo( + SystemLogger::getInstance()->logInfo( QString("敌情数据更新:总数 %1,高威胁 %2") .arg(totalCount).arg(highThreatCount) ); @@ -1382,17 +1382,23 @@ void MainWindow::onRobotDogControlRequested() { SystemLogger::getInstance()->logInfo("机器狗控制请求"); - // 暂时使用简单的消息框来测试功能 - QMessageBox::information(this, "机器狗控制", - "机器狗控制界面功能正在开发中...\n" - "将包含以下功能:\n" - "• 运动控制(前进、后退、转向)\n" - "• 姿态控制(站立、趴下、跳跃)\n" - "• 地图建构和导航\n" - "• 视觉识别和跟踪\n" - "• 设备状态监控"); + // 创建机器狗控制对话框(如果还没有创建) + if (!m_robotDogControlDialog) { + m_robotDogControlDialog = new RobotDogControlDialog(this); + + // 连接信号(如果需要的话) + // connect(m_robotDogControlDialog, &RobotDogControlDialog::someSignal, + // this, &MainWindow::someSlot); + } + + // 显示对话框 + m_robotDogControlDialog->show(); + m_robotDogControlDialog->raise(); + m_robotDogControlDialog->activateWindow(); } + + void MainWindow::startVisionWebService() { SystemLogger::getInstance()->logInfo("启动视觉识别系统Web服务");