CRectItem.h 962 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef CRECTITEM_H
  2. #define CRECTITEM_H
  3. #include "CPathItem.h"
  4. class QMenu;
  5. class QAction;
  6. class CRectItem : public CPathItem
  7. {
  8. public:
  9. explicit CRectItem(QGraphicsItem *parent = nullptr);
  10. explicit CRectItem(const QRectF &rect, QGraphicsItem *parent = nullptr);
  11. QRectF rect() const;
  12. void setRect(const QRectF &rect);
  13. int cornerRadius() const;
  14. void setCornerRadius(qreal radius);
  15. void updatePath() override;
  16. void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override;
  17. void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
  18. QAction *selectAction() const;
  19. QAction *subNodeAction() const;
  20. QAction *removeAction() const;
  21. private slots:
  22. void slotSelect();
  23. private:
  24. QRectF m_rect;
  25. qreal m_cornerRadius = 5;
  26. QMenu *m_menu = nullptr;
  27. QAction *m_select = nullptr;
  28. QAction *m_subNode = nullptr;
  29. QAction *m_remove = nullptr;
  30. };
  31. #endif // CRECTITEM_H