#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include 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 onActionPropertiesTriggered();//属性页 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 copiedItemsData; // 存储序列化的图形项数据 QPointF lastPastePos; // 记录上次粘贴位置 }; #endif // MAINWINDOW_H