#pragma once #include class FileBrowserWidget; class CodeEditorWidget; class CompileProcessManager; class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = nullptr); ~MainWindow(); private slots: void onActionNewFile(); void onActionOpenFile(); void onActionSaveFile(); void onActionExit(); void onActionBuild(); void onActionRun(); // 后端编译结果回调 void onCompileFinished(const QString &stdoutText, const QString &stderrText, int exitCode); private: void createActions(); void createMenus(); void setupCentralWidgets(); void connectSignals(); private: // UI 部件 FileBrowserWidget *m_fileBrowser = nullptr; CodeEditorWidget *m_codeEditor = nullptr; // 后端模块 CompileProcessManager *m_compileManager = nullptr; // 菜单动作 QAction *m_actNew = nullptr; QAction *m_actOpen = nullptr; QAction *m_actSave = nullptr; QAction *m_actExit = nullptr; QAction *m_actBuild = nullptr; QAction *m_actRun = nullptr; };