|
- #pragma once
- #include <QWidget>
- #include <QListWidget>
- #include <QGraphicsView>
- #include <QGraphicsScene>
- #include <QLabel>
- #include <QPushButton>
- #include <QList>
-
- class HmiEditorWidget : public QWidget {
- Q_OBJECT
- public:
- explicit HmiEditorWidget(QWidget* parent = nullptr);
- ~HmiEditorWidget();
-
- Q_INVOKABLE QList<QGraphicsScene*> getPages() const { return m_pages; }
- Q_INVOKABLE int getCurrentPageIndex() const { return m_currentPageIndex; }
- Q_INVOKABLE void clearPages();
- Q_INVOKABLE void createNewPage();
- Q_INVOKABLE void refreshView();
- void switchToPage(int index);
-
- protected:
- void keyPressEvent(QKeyEvent* event) override;
- bool eventFilter(QObject* obj, QEvent* event) override;
- void resizeEvent(QResizeEvent* event) override;
- void showEvent(QShowEvent* event) override;
-
- private slots:
- void onToolbarItemClicked(QListWidgetItem* item);
- void onNewPageClicked();
- void onDeletePageClicked();
- void onPreviousPageClicked();
- void onNextPageClicked();
-
- private:
- void initViewScale();
- void updatePageLabel();
- void ensureViewReady();
-
- QListWidget* hmiToolbar;
- QGraphicsView* hmiEditArea;
- QList<QGraphicsScene*> m_pages;
- int m_currentPageIndex = -1;
- QLabel* m_pageLabel;
- QPushButton* m_newPageButton;
- QPushButton* m_deletePageButton;
- QPushButton* m_prevPageButton;
- QPushButton* m_nextPageButton;
- bool m_firstShow = true;
- };
|