综合平台编辑器
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

72 líneas
2.2 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. bool saveToFile(const QString& filePath);
  17. bool openFromFile(const QString& filePath);
  18. // 重置页面,清空所有页,只保留一个空的第一页
  19. void resetPages();
  20. bool isModified() const; // 判断是否有未保存的修改
  21. void setModified(bool modified); // 设置修改状态
  22. signals:
  23. void pageAdded(int pageNumber, int index);
  24. void pageRemoved(int pageNumber, int index);
  25. void logMessageGenerated(const QString& message);
  26. private slots:
  27. void prepareToCreateButton();
  28. void prepareToCreateIndicator();
  29. void onComponentCreated(HmiComponent* item);
  30. void onComponentSelected(HmiComponent* item);
  31. void onCopyRequested();
  32. void onPasteRequested(const QPointF& scenePos);
  33. void onDeleteRequested();
  34. void addPage();
  35. void deletePage();
  36. void prePage();
  37. void nextPage();
  38. void onPageAdded(int pageNumber, int index);
  39. void onPageRemoved(int pageNumber, int index);
  40. void onChangeOnColorRequested(HmiComponent* item);
  41. void onChangeOffColorRequested(HmiComponent* item);
  42. private:
  43. void setupNewComponent(HmiComponent* item);
  44. private:
  45. Ui::MainWindow* ui_;
  46. CustomGraphicsScene* m_scene;
  47. ComponentType m_copiedType;
  48. QColor m_copiedColor;
  49. // 新增这些成员变量
  50. QColor m_copiedOnColor;
  51. QColor m_copiedOffColor;
  52. QString m_copiedComponentName;
  53. int m_copiedAddress = 0;
  54. // 新增复制尺寸变量
  55. double m_copiedWidth = 0.0;
  56. double m_copiedHeight = 0.0;
  57. bool m_hasCopiedItem = false; // 指示当前是否已经有组件被复制
  58. int m_pageCount = 1; // 初始化页面计数器
  59. QList<int> m_availablePageNumbers; // 存储可用的页面编号 (有序列表)
  60. QList<int> m_pageOrder; // 维护页面顺序
  61. bool m_isModified = false; // 添加一个修改标志变量
  62. };
  63. #endif // HMIMODULE_H