综合平台编辑器
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

55 行
1.6 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. void onChangeAppearanceRequested(HmiComponent* item);
  29. void addPage();
  30. void deletePage();
  31. void prePage();
  32. void nextPage();
  33. void onPageAdded(int pageNumber, int index);
  34. void onPageRemoved(int pageNumber, int index);
  35. private:
  36. void setupNewComponent(HmiComponent* item);
  37. private:
  38. Ui::MainWindow* ui_;
  39. CustomGraphicsScene* m_scene;
  40. ComponentType m_copiedType;
  41. QColor m_copiedColor;
  42. bool m_hasCopiedItem = false; // 指示当前是否已经有组件被复制
  43. int m_pageCount = 1; // 初始化页面计数器
  44. QList<int> m_availablePageNumbers; // 存储可用的页面编号 (有序列表)
  45. QList<int> m_pageOrder; // 维护页面顺序
  46. };
  47. #endif // HMIMODULE_H