XNSim/XNMonitor/mainwindow.h
2025-04-28 12:25:20 +08:00

182 lines
3.6 KiB
C++
Executable File

/**
* @file mainwindow.h
* @author jinchao
* @brief 主窗口类
* @version 1.0
* @date 2025-03-10
*
* @copyright Copyright (c) 2025 COMAC
*
*/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QVBoxLayout>
#include <QMenu>
#include <QAction>
#include <QMenuBar>
#include <QString>
#include <QMessageBox>
#include <QPushButton>
#include "SystemStatusWidget/SystemStatusWidget.h"
#include "ModelStatusWidget/ModelStatusWidget.h"
#include "DataMonitorWidget/DataMonitorWidget.h"
#include "DataCollectionWidget/DataCollectionWidget.h"
#include "DebugWidget/DebugWidget.h"
QT_BEGIN_NAMESPACE
namespace Ui
{
class MainWindow;
}
QT_END_NAMESPACE
/**
* @brief 主窗口类
*/
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
/**
* @brief 构造函数
* @param parent 父窗口
*/
MainWindow(QWidget *parent = nullptr);
/**
* @brief 析构函数
*/
~MainWindow();
private:
/**
* @brief 初始化菜单栏
*/
void InitialMenuBar();
/**
* @brief 初始化中央窗口
*/
void InitialCentralWidget();
/**
* @brief 初始化切换标签页按钮
*/
void InitialTabButton();
/**
* @brief 初始化系统运行状态内容
*/
void InitialSystemStatusWidget();
/**
* @brief 初始化模型运行状态内容
*/
void InitialModelStatusWidget();
/**
* @brief 初始化模型数据监控内容
*/
void InitialDataMonitorWidget();
/**
* @brief 初始化模型数据采集内容
*/
void InitialDataCollectionWidget();
public slots:
/**
* @brief 显示系统运行状态内容槽函数
*/
void showSystemStatusContent();
/**
* @brief 显示模型运行状态内容槽函数
*/
void showModelStatusContent();
/**
* @brief 显示模型数据监控内容槽函数
*/
void showDataMonitoringContent();
/**
* @brief 显示模型数据采集内容槽函数
*/
void showDataCollectionContent();
/**
* @brief 切换调试内容显示/隐藏槽函数
*/
void toggleDebugWidget();
signals:
/**
* @brief 设置当前选中的标签页索引信号
* @param index 标签页索引
*/
void setCurrentTabIndex(int index);
private:
/**
* @brief 主窗口UI对象
*/
Ui::MainWindow *ui;
/**
* @brief 菜单栏对象
*/
QMenuBar *menuBar;
/**
* @brief 主布局对象
*/
QVBoxLayout *mainLayout;
/**
* @brief 当前选中的标签页索引
*/
int currentTabIndex;
/**
* @brief 切换至系统运行状态按钮对象
*/
QPushButton *systemStatusButton;
/**
* @brief 切换至模型运行状态按钮对象
*/
QPushButton *modelStatusButton;
/**
* @brief 切换至模型数据监控按钮对象
*/
QPushButton *dataMonitoringButton;
/**
* @brief 切换至模型数据采集按钮对象
*/
QPushButton *dataCollectionButton;
/**
* @brief 系统运行状态内容界面
*/
SystemStatusWidget *systemStatusWidget;
/**
* @brief 模型运行状态内容界面
*/
ModelStatusWidget *modelStatusWidget;
/**
* @brief 模型数据监控内容界面
*/
DataMonitorWidget *dataMonitorWidget;
/**
* @brief 模型数据采集内容界面
*/
DataCollectionWidget *dataCollectionWidget;
/**
* @brief 调试内容界面
*/
DebugWidget *debugWidget;
/**
* @brief 视图菜单对象
*/
QMenu *viewMenu;
/**
* @brief 显示调试内容动作对象
*/
QAction *showDebugAction;
protected:
/**
* @brief 移动事件处理函数
* @param event 移动事件
*/
void moveEvent(QMoveEvent *event) override;
};
#endif // MAINWINDOW_H