CNode.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef CNODE_H
  2. #define CNODE_H
  3. #include <QObject>
  4. struct CNodeData
  5. {
  6. int id = -1; // 节点 id, 对应数据库节点表中的 id, 数据库自动生成
  7. int projectId = -1; // 项目 id, 对应数据库项目表中的 id, 为脑图所属项目, 数据库自动生成
  8. int indexType = 0; // 指标类型
  9. int number = -1; // 节点编号, 作用域为当前脑图, 0 为根节点
  10. int pNumber = -1; // 父节点编号
  11. QString name = "新节点"; // 名称
  12. QString remark = ""; // 备注
  13. CNodeData(int projId = -1, int indexType = 0, int number = -1, int pNumber = -1, int id = -1);
  14. bool isValid() const;
  15. bool isNull() const;
  16. bool isCached() const;
  17. bool hasParent() const;
  18. bool isSameMind(CNodeData n) const;
  19. };
  20. class CNode : public QObject
  21. {
  22. Q_OBJECT
  23. public:
  24. explicit CNode(QObject *parent = nullptr);
  25. const CNode *pNode() const; // 父节点
  26. const CNode *rNode() const; // 根节点
  27. QList<CNode *> cNodes() const; // 孩子节点
  28. int height() const; // 节点的高度
  29. int depth() const; // 节点的深度
  30. int leafs() const; // 叶子节点个数或包含的路径条数
  31. ///
  32. /// \brief sizeOfLevel 以此节点为根节点的子树中,某一层的节点数
  33. /// \param lev 节点层级,当前节点为1,向下递增
  34. /// \return 节点数
  35. ///
  36. int sizeOfLevel(int lev) const;
  37. signals:
  38. };
  39. #endif // CNODE_H