12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #ifndef CMINDVIEW_H
- #define CMINDVIEW_H
- #include <QGraphicsView>
- #include <list>
- #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<CNodeData> 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;
- void refreshNodeGeometry(CNodeItem *node, QPointF topLeft = QPointF());
- private:
- CMind *m_mind = nullptr;
- CNodeItem *m_root = nullptr;
- QGraphicsItemGroup *m_group = nullptr;
- // 场景中显示的项目
- QList<QGraphicsItem *> m_items;
- qreal m_hNodeSpace = 50;
- qreal m_vNodeSpace = 20;
- Alignment m_align = NoAlignment;
- };
- #endif // CMINDVIEW_H
|