综合平台编辑器
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.5 KiB

  1. #ifndef HMIMODULE_H
  2. #define HMIMODULE_H
  3. #include <QObject>
  4. #include "ui_MainWindow.h"
  5. #include "customgraphicsscene.h"
  6. #include <QList>
  7. #include <QMap>
  8. #include <QVector>
  9. class HMIModule : public QObject
  10. {
  11. Q_OBJECT
  12. public:
  13. explicit HMIModule(Ui::MainWindow* ui, QObject *parent = nullptr);
  14. void setButtonIcon(QAbstractButton* button, const QString& iconPath);
  15. void init();
  16. signals:
  17. void pageAdded(int pageNumber, int index);
  18. void pageRemoved(int pageNumber, int index);
  19. void logMessageGenerated(const QString& message); // 确保此行存在
  20. private slots:
  21. void prepareToCreateButton();
  22. void prepareToCreateIndicator();
  23. void onComponentCreated(HmiComponent* item);
  24. void onComponentSelected(HmiComponent* item);
  25. void onCopyRequested();
  26. void onPasteRequested(const QPointF& scenePos);
  27. void onDeleteRequested();
  28. // 新增的槽函数
  29. void addPage();
  30. void deletePage();
  31. void prePage();
  32. void nextPage();
  33. // 新增的槽函数
  34. void onPageAdded(int pageNumber, int index);
  35. void onPageRemoved(int pageNumber, int index);
  36. private:
  37. void setupNewComponent(HmiComponent* item);
  38. private:
  39. Ui::MainWindow* ui_;
  40. CustomGraphicsScene* m_scene;
  41. ComponentType m_copiedType;
  42. QColor m_copiedColor;
  43. bool m_hasCopiedItem = false;
  44. int m_pageCount = 1; // 初始化页面计数器
  45. QList<int> m_availablePageNumbers; // 存储可用的页面编号 (有序列表)
  46. QList<int> m_pageOrder; // 维护页面顺序
  47. };
  48. #endif // HMIMODULE_H