CMindView.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef CMINDVIEW_H
  2. #define CMINDVIEW_H
  3. #include <QGraphicsView>
  4. #include <list>
  5. #include "CNode.h"
  6. #include "CMind.h"
  7. class CNodeItem;
  8. class CMindView : public QGraphicsView
  9. {
  10. enum Alignment
  11. {
  12. NoAlignment,
  13. AlignLeft,
  14. AlignRight,
  15. };
  16. public:
  17. explicit CMindView(QWidget *parent = nullptr);
  18. CMind *mind() const;
  19. void setNodeList(QList<CNodeData> list);
  20. void addNode(CNodeData n); // 添加一个节点
  21. void createSubNode(int pNumber); // 指定父节点, 创建子节点
  22. void removeNode(int number); // 移除节点
  23. void clear(); // 清空
  24. void refreshItems();
  25. void collectItems(CNodeItem *node);
  26. qreal hNodeSpace() const;
  27. void setHNodeSpace(qreal h);
  28. qreal vNodeSpace() const;
  29. void setVNodeSpace(qreal v);
  30. void setALignment(Alignment align);
  31. CNodeItem *root() const;
  32. private:
  33. CMind *m_mind = nullptr;
  34. CNodeItem *m_root = nullptr;
  35. // 场景中显示的项目
  36. QList<QGraphicsItem *> m_items;
  37. qreal m_hNodeSpace = 50;
  38. qreal m_vNodeSpace = 20;
  39. Alignment m_align = NoAlignment;
  40. };
  41. #endif // CMINDVIEW_H