|
- #ifndef HMIMODULE_H
- #define HMIMODULE_H
-
- #include <QObject>
- #include "ui_MainWindow.h"
- #include "customgraphicsscene.h"
- #include <QList>
- #include <QMap>
- #include <QVector>
-
- class HMIModule : public QObject
- {
- Q_OBJECT
- public:
- explicit HMIModule(Ui::MainWindow* ui, QObject *parent = nullptr);
- void setButtonIcon(QAbstractButton* button, const QString& iconPath);
- void init();
- bool saveToFile(const QString& filePath);
- bool openFromFile(const QString& filePath);
-
- signals:
- void pageAdded(int pageNumber, int index);
- void pageRemoved(int pageNumber, int index);
- void logMessageGenerated(const QString& message);
-
- private slots:
- void prepareToCreateButton();
- void prepareToCreateIndicator();
- void onComponentCreated(HmiComponent* item);
- void onComponentSelected(HmiComponent* item);
- void onCopyRequested();
- void onPasteRequested(const QPointF& scenePos);
- void onDeleteRequested();
- void addPage();
- void deletePage();
- void prePage();
- void nextPage();
- void onPageAdded(int pageNumber, int index);
- void onPageRemoved(int pageNumber, int index);
- void onChangeOnColorRequested(HmiComponent* item);
- void onChangeOffColorRequested(HmiComponent* item);
-
- private:
- void setupNewComponent(HmiComponent* item);
-
- private:
- Ui::MainWindow* ui_;
- CustomGraphicsScene* m_scene;
- ComponentType m_copiedType;
- QColor m_copiedColor;
- bool m_hasCopiedItem = false; // 指示当前是否已经有组件被复制
- int m_pageCount = 1; // 初始化页面计数器
- QList<int> m_availablePageNumbers; // 存储可用的页面编号 (有序列表)
- QList<int> m_pageOrder; // 维护页面顺序
- };
-
- #endif // HMIMODULE_H
|