Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

41 wiersze
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 onActionPropertiesTriggered();//属性页
  22. void createEllipse(const QPointF &pos);// 创建指示灯(圆形)
  23. void createRectangle(const QPointF &pos);// 创建按钮(矩形)
  24. void resetDrawFlags();// 重置绘制标志
  25. void showContextMenu(QPoint pos);
  26. protected:
  27. bool eventFilter(QObject *obj, QEvent *event) override;
  28. private:
  29. Ui::MainWindow *ui;
  30. bool canDrawEllipse;
  31. bool canDrawRectangle;
  32. QGraphicsScene *scene; // QGraphicsScene,用于容纳图形项
  33. QList<QByteArray> copiedItemsData; // 存储序列化的图形项数据
  34. QPointF lastPastePos; // 记录上次粘贴位置
  35. };
  36. #endif // MAINWINDOW_H