You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 rivejä
1.3 KiB

  1. #ifndef HMIELEMENT_H
  2. #define HMIELEMENT_H
  3. #include <QGraphicsRectItem>
  4. #include <QGraphicsEllipseItem>
  5. #include <QGraphicsSceneMouseEvent>
  6. #include <QPen>
  7. #include <QBrush>
  8. // 自定义矩形类,支持大小调整
  9. class ResizableRectangle : public QGraphicsRectItem
  10. {
  11. public:
  12. // 构造函数
  13. ResizableRectangle(qreal x, qreal y, qreal w, qreal h);
  14. protected:
  15. // 鼠标按下事件
  16. void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
  17. // 鼠标移动事件
  18. void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
  19. // 鼠标释放事件
  20. void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
  21. private:
  22. bool resizing; //是否正在调整大小
  23. };
  24. // 自定义圆形类,支持大小调整
  25. class ResizableEllipse : public QGraphicsEllipseItem
  26. {
  27. public:
  28. // 构造函数
  29. ResizableEllipse(qreal x, qreal y, qreal w, qreal h);
  30. protected:
  31. // 鼠标按下事件
  32. void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
  33. // 鼠标移动事件
  34. void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
  35. // 鼠标释放事件
  36. void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
  37. private:
  38. bool resizing2; // 是否正在调整大小
  39. };
  40. #endif // HMIELEMENT_H