综合平台编辑器
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.

50 regels
1.3 KiB

  1. #ifndef HMIMODULE_H
  2. #define HMIMODULE_H
  3. #include <QObject>
  4. #include "ui_MainWindow.h"
  5. // #include "customgraphics.h" // 已被 customgraphicsscene.h 包含
  6. #include "customgraphicsscene.h" // 引入新的场景头文件
  7. class HMIModule : public QObject
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit HMIModule(Ui::MainWindow* ui, QObject *parent = nullptr);
  12. void setButtonIcon(QAbstractButton* button, const QString& iconPath);
  13. void init();
  14. private slots:
  15. // 准备创建组件,而不是直接创建
  16. void prepareToCreateButton();
  17. void prepareToCreateIndicator();
  18. // 当场景创建了一个组件后,进行后续处理
  19. void onComponentCreated(HmiComponent* item);
  20. void onComponentSelected(HmiComponent* item);
  21. // 处理复制、粘贴、删除的槽函数
  22. void onCopyRequested();
  23. void onPasteRequested(const QPointF& scenePos);
  24. void onDeleteRequested();
  25. // 一个用于发送日志消息的信号
  26. signals:
  27. void logMessageGenerated(const QString& message);
  28. private:
  29. void setupNewComponent(HmiComponent* item);
  30. private:
  31. Ui::MainWindow* ui_;
  32. CustomGraphicsScene* m_scene;
  33. // 用于实现剪贴板功能的成员变量
  34. ComponentType m_copiedType;
  35. QColor m_copiedColor;
  36. bool m_hasCopiedItem = false;
  37. };
  38. #endif // HMIMODULE_H