mainwindow.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QStackedWidget>
  5. #include <QVector>
  6. class DatabaseModule;
  7. class SerialModule;
  8. class NetworkModule;
  9. class TaskManagementPage;
  10. class Toolbar;
  11. class DaemonClient;
  12. class SettingsDialog;
  13. class QLabel;
  14. class DaemonMessageFlowWidget;
  15. class MainWindow : public QMainWindow
  16. {
  17. Q_OBJECT
  18. public:
  19. MainWindow(QWidget *parent = nullptr);
  20. protected:
  21. void closeEvent(QCloseEvent *event) override;
  22. private:
  23. void createUI();
  24. // menubar-菜单栏
  25. void createMenuBar();
  26. // toolbar-工具栏
  27. void createHomeToolbar();
  28. void createSerialToolbar();
  29. void createNetworkToolbar();
  30. void createDatabaseToolbar();
  31. void createTaskToolbar();
  32. void createSettingsToolbar();
  33. void createHelpToolbar();
  34. // motion-切换页面
  35. void switchToPage(int index);
  36. void setupShortcuts();
  37. void connectSignals();
  38. void showAbout();
  39. // 设备选择自动跳转
  40. void onDeviceSelectedForAutoSwitch(const QString &deviceType, const QString &deviceId);
  41. // daemon-守护进程
  42. void setupDaemonStatus();
  43. void updateDaemonStatus(bool running, const QString& statusJson);
  44. void updateLoadInfo(const QString& loadInfoJson);
  45. void createMessageFlowDock();
  46. // settings-设置
  47. void loadSettings();
  48. void showSettingsDialog();
  49. private slots:
  50. void onDaemonStatusChanged(bool running, const QString& statusJson);
  51. void onLoadInfoUpdated(const QString& loadInfoJson);
  52. private:
  53. QStackedWidget *m_pageStack;
  54. QVector<Toolbar*> m_toolbars;
  55. // 子界面
  56. SerialModule *m_serialModule = nullptr;
  57. NetworkModule *m_networkModule = nullptr;
  58. DatabaseModule *m_databaseModule = nullptr;
  59. TaskManagementPage *m_taskPage = nullptr;
  60. int m_serialPageIndex = -1;
  61. int m_networkPageIndex = -1;
  62. int m_databasePageIndex = -1;
  63. int m_taskPageIndex = -1;
  64. // 守护进程客户端和状态显示
  65. DaemonClient *m_daemonClient = nullptr;
  66. QLabel *m_statusLabel = nullptr;
  67. QLabel *m_loadLabel = nullptr;
  68. DaemonMessageFlowWidget *m_messageFlowWidget = nullptr;
  69. // 设置对话框
  70. SettingsDialog *m_settingsDialog = nullptr;
  71. };
  72. #endif // MAINWINDOW_H