|
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
-
- #include <QMainWindow>
- #include <QGraphicsScene>
- #include <QTreeWidget>
- #include <QMouseEvent>
-
- QT_BEGIN_NAMESPACE
- namespace Ui { class MainWindow; }
- QT_END_NAMESPACE
-
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
-
- public:
- MainWindow(QWidget *parent = nullptr);
- ~MainWindow();
- private slots:
- void onHmiItemClicked(QTreeWidgetItem *item);
- void onActionDeleteTriggered(); // 添加删除功能的槽函数
- void onActionCopyTriggered();//复制功能槽函数
- void onActionPasteTriggered();//粘贴功能槽函数
- void createEllipse(const QPointF &pos); // 创建指示灯(圆形)
- void createRectangle(const QPointF &pos); // 创建按钮(矩形)
- void resetDrawFlags(); // 重置绘制标志
- void showContextMenu(QPoint pos);
- protected:
- bool eventFilter(QObject *obj, QEvent *event) override;
- private:
- Ui::MainWindow *ui;
- bool canDrawEllipse;
- bool canDrawRectangle;
- QGraphicsScene *scene; // QGraphicsScene,用于容纳图形项
- QList<QByteArray> copiedItemsData; // 存储序列化的图形项数据
- QPointF lastPastePos; // 记录上次粘贴位置
- };
- #endif // MAINWINDOW_H
|