DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DATree.h
1#ifndef DATREE_H
2#define DATREE_H
3#include "DAUtilsAPI.h"
4#include "DATreeItem.h"
5#include <QVariant>
6
7namespace DA
8{
13class DAUTILS_API DATree
14{
15 DA_DECLARE_PRIVATE(DATree)
16 friend class DATreeItem;
17
18public:
19 DATree();
20 DATree(const DATree& c);
21 virtual ~DATree();
22 // 重载等号操作符
23 DATree& operator=(const DATree& tree);
24
25 // 清空所有节点和属性
26 void clear();
27
28 // 父子条目操作相关
29 int getItemCount() const;
30
31 // 索引子条目
32 DATreeItem* getItem(int row) const;
33
34 // 获取当前下的所有子节点
35 QList< DATreeItem* > getItems() const;
36
37 // 追加子条目
38 void appendItem(DATreeItem* item);
39
40 // 插入子条目
41 void insertItem(DATreeItem* item, int row);
42
43 // 判断是否存在子节点
44 bool haveItem(DATreeItem* item) const;
45
46 // 把item解除satree的关系
47 void takeItem(DATreeItem* item);
48 DATreeItem* takeItemByIndex(int row);
49
50 // 返回item对应的树层级
51 int indexOfItem(DATreeItem* const item) const;
52
53 // 设置tree的属性,tree可以携带附加信息
54 void setTreeProperty(const QString& name, const QVariant& var);
55
56 // 获取属性
57 QVariant getTreeProperty(const QString& name, const QVariant& defaultVal = QVariant()) const;
58
59 // 移除属性
60 void removeTreeProperty(const QString& name);
61
62 // 获取所有属性名
63 QList< QString > getTreePropertyNames() const;
64
65 // 获取所有属性
66 QMap< QString, QVariant > getTreePropertys() const;
67
68 // 参考QStandardItemModel的invisibleRootItem
69 DATreeItem* invisibleRootItem() const;
70
71 // 判断是否为顶层item
72 bool isRootItem(const DATreeItem* item) const;
73
74 // 获取父级节点下所有子节点的名字,如果父级节点还是nullptr,则获取顶层节点的名字
75 QList< QString > getChildItemNames(const DATreeItem* parent = nullptr) const;
76};
77
78DAUTILS_API QDebug& operator<<(QDebug& dbg, const DATree& tree);
79// 把satree转换为json string
80DAUTILS_API QString toJson(const DATree* tree);
81
82// 从标准json sting转换到tree
83DAUTILS_API bool fromJson(const QString& json, DATree* tree);
84
85} // end namespace DA
86Q_DECLARE_METATYPE(DA::DATree)
87
88// debug输出
89
90#endif // SATREE_H
基本树形结构的条目,是SAAbstractData的基类,提供了名称和图标以及父子关系管理功能 SAItem可用SATree进行管理,形成树形结构
Definition DATreeItem.h:17
通用树形结构数据存储 支持任意拷贝和赋值
Definition DATree.h:14
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44
QString toJson(const DATree *tree)
把satree转换为json string
Definition DATree.cpp:244
bool fromJson(const QString &json, DATree *tree)
从标准json sting转换到tree
Definition DATree.cpp:361