#ifndef GUIDINGUI_H
#define GUIDINGUI_H

#include <QMainWindow>
#include <QPushButton>
#include <QLabel>
#include <QDialog>
#include <QLineEdit>
#include <string>
#include <QTableWidget>
#include <cstring>
#include <QQuickItem>
#include <QFormLayout>
#include <QStackedWidget>
#include <QVector>
#include <QPair>
#include <QProcess>

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<QPair<QString, QString>> robotList; // 存储机器人名称和IP地址
    // 存储无人机列表
    QVector<QPair<QString, QString>> uavList; // 存储无人机名称和IP地址
    
    // 人脸识别进程
    QProcess *faceRecognitionProcess;
    
    // 人脸跟随进程
    QProcess *faceTrackingProcess;
};
#endif // GUIDINGUI_H
