Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

40 lignes
1.2 KiB

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QGraphicsScene>
  5. #include <QTreeWidget>
  6. #include <QMouseEvent>
  7. QT_BEGIN_NAMESPACE
  8. namespace Ui { class MainWindow; }
  9. QT_END_NAMESPACE
  10. class MainWindow : public QMainWindow
  11. {
  12. Q_OBJECT
  13. public:
  14. MainWindow(QWidget *parent = nullptr);
  15. ~MainWindow();
  16. private slots:
  17. void onHmiItemClicked(QTreeWidgetItem *item);
  18. void onActionDeleteTriggered(); // 添加删除功能的槽函数
  19. void onActionCopyTriggered();//复制功能槽函数
  20. void onActionPasteTriggered();//粘贴功能槽函数
  21. void createEllipse(const QPointF &pos); // 创建指示灯(圆形)
  22. void createRectangle(const QPointF &pos); // 创建按钮(矩形)
  23. void resetDrawFlags(); // 重置绘制标志
  24. void showContextMenu(QPoint pos);
  25. protected:
  26. bool eventFilter(QObject *obj, QEvent *event) override;
  27. private:
  28. Ui::MainWindow *ui;
  29. bool canDrawEllipse;
  30. bool canDrawRectangle;
  31. QGraphicsScene *scene; // QGraphicsScene,用于容纳图形项
  32. QList<QByteArray> copiedItemsData; // 存储序列化的图形项数据
  33. QPointF lastPastePos; // 记录上次粘贴位置
  34. };
  35. #endif // MAINWINDOW_H