Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.

53 righe
1.4 KiB

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QTabWidget>
  5. #include <QToolBar>
  6. #include <QAction>
  7. #include "basedocument.h"
  8. QT_BEGIN_NAMESPACE
  9. namespace Ui { class MainWindow; }
  10. QT_END_NAMESPACE
  11. class MainWindow : public QMainWindow
  12. {
  13. Q_OBJECT
  14. public:
  15. MainWindow(QWidget *parent = nullptr);
  16. ~MainWindow();
  17. protected:
  18. bool eventFilter(QObject *obj, QEvent *event) override;
  19. private slots:
  20. void onNewHMI(); // 新建HMI文档
  21. void onNewPLC(); // 新建PLC文档
  22. void onTabChanged(int idx); // 标签页切换时更新工具栏
  23. void onSave(); // 保存文档
  24. void onSaveAs(); // 另存为文档
  25. void onOpen(); // 打开文档
  26. void onCloseTab(int index); // 关闭标签页
  27. private:
  28. void createMenus(); // 创建菜单栏
  29. void createToolbars(); // 创建工具栏(左侧)
  30. void updateToolBar(BaseDocument *doc); // 根据文档类型更新工具栏
  31. void saveDocument(BaseDocument *doc); // 保存文档
  32. void saveDocumentAs(BaseDocument *doc); // 另存为文档
  33. QTabWidget *m_tabWidget; // 多文档标签页
  34. QToolBar *m_leftToolBar; // 左侧工具栏
  35. int m_hmiCount = 0; // HMI文档计数器
  36. int m_plcCount = 0; // PLC文档计数器
  37. // 菜单动作
  38. QAction *m_saveAction;
  39. QAction *m_saveAsAction;
  40. QAction *m_openAction;
  41. };
  42. #endif // MAINWINDOW_H