#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include "global.h" class QStackedWidget; class QLabel; class AppContext; class BasePage; class FaultQueryPage; // ===================== 主窗口(全屏无边框 + 页面路由) ===================== class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget* parent = nullptr); ~MainWindow(); protected: void keyPressEvent(QKeyEvent* ev) override; private slots: void onNavigate(PageId id); void onEstopChanged(bool triggered); private: void buildPages(); BasePage* page(PageId id) const { return m_pages.value(id, nullptr); } AppContext* m_ctx = nullptr; QStackedWidget* m_stack = nullptr; QLabel* m_estopBanner = nullptr; QVector m_pages; FaultQueryPage* m_faultPage = nullptr; }; #endif // MAINWINDOW_H