CNodeItem.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef CNODEITEM_H
  2. #define CNODEITEM_H
  3. #include <QObject>
  4. #include <QPoint>
  5. class CRectItem;
  6. class CTextItem;
  7. class CNodeItem : public QObject
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit CNodeItem(QObject *parent = nullptr, int number = -1, QPointF pos = QPointF());
  12. int number() const;
  13. void setNumber(int n);
  14. QString text() const;
  15. void setText(const QString text);
  16. CRectItem *rectItem() const;
  17. CTextItem *textItem() const;
  18. QPointF pos() const;
  19. void setPos(const QPointF pos);
  20. qreal xMargin() const;
  21. void setXMargin(qreal x);
  22. qreal yMargin() const;
  23. void setYMargin(qreal y);
  24. void connectSignalsAndSlots();
  25. private:
  26. void updateItemsGeometry();
  27. signals:
  28. void sigAddSubItem(int pNumber);
  29. void sigRemoveItem(int number);
  30. public slots:
  31. void slotSelect();
  32. void slotSubNode();
  33. void slotRemove();
  34. private:
  35. int m_number = -1; // 对应 CNodeData.number
  36. CRectItem *m_rectItem;
  37. CTextItem *m_textItem;
  38. QPointF m_pos;
  39. qreal m_xMargin = 10;
  40. qreal m_yMargin = 5;
  41. };
  42. #endif // CNODEITEM_H