#ifndef CMINDVIEW_H #define CMINDVIEW_H #include #include #include "CNode.h" #include "CMind.h" class CNodeItem; class CMindView : public QGraphicsView { enum Alignment { NoAlignment, AlignLeft, AlignRight, }; public: explicit CMindView(QWidget *parent = nullptr); CMind *mind() const; void setNodeList(QList list); void addNode(CNodeData n); // 添加一个节点 void createSubNode(int pNumber); // 指定父节点, 创建子节点 void removeNode(int number); // 移除节点 void clear(); // 清空 void refreshItems(); void collectItems(CNodeItem *node); qreal hNodeSpace() const; void setHNodeSpace(qreal h); qreal vNodeSpace() const; void setVNodeSpace(qreal v); void setALignment(Alignment align); CNodeItem *root() const; private: CMind *m_mind = nullptr; CNodeItem *m_root = nullptr; // 场景中显示的项目 QList m_items; qreal m_hNodeSpace = 50; qreal m_vNodeSpace = 20; Alignment m_align = NoAlignment; }; #endif // CMINDVIEW_H