DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DATreeItem.h
1#ifndef DATREEITEM_H
2#define DATREEITEM_H
3#include "DAUtilsAPI.h"
4#include <QString>
5#include <QIcon>
6#include <QVariant>
7namespace DA
8{
9
10class DATree;
16class DAUTILS_API DATreeItem
17{
18 DA_DECLARE_PRIVATE(DATreeItem)
19 friend class DATree;
20
21public:
22 using id_type = quintptr;
26 enum Role
27 {
28 RoleName = 0,
31 RoleUserDefine = 1000
32 };
33 DATreeItem(DATreeItem* parentItem = nullptr);
34 DATreeItem(const QString& text, DATreeItem* parentItem = nullptr);
35 DATreeItem(const QIcon& icon, const QString& text, DATreeItem* parentItem = nullptr);
36 DATreeItem(const DATreeItem& c);
37 virtual ~DATreeItem();
38 //重载等号操作符
39 DATreeItem& operator=(const DATreeItem& item);
40
41 //名字
42 void setName(const QString& name);
43 QString getName() const;
44
45 //图标
46 void setIcon(const QIcon& icon);
47 QIcon getIcon() const;
48
49 // id
50 void setID(id_type id);
51 id_type getID() const;
52
53 //扩展数据操作相关
54 void setProperty(int roleID, const QVariant& var);
55 bool isHaveProperty(int roleID) const;
56 int getPropertyCount() const;
57
58 //扩展数据的获取操作
59 const QVariant& property(int id) const;
60 QVariant& property(int id);
61 void property(int index, int& id, QVariant& var) const;
62 QVariant getProperty(int id, const QVariant& defaultvar = QVariant()) const;
63 QMap< int, QVariant > getPropertys() const;
64
65 //父子条目操作相关
66 int childItemCount() const;
67
68 //索引子条目
69 DATreeItem* childItem(int row) const;
70
71 //获取当前下的所有子节点
72 QList< DATreeItem* > getChildItems() const;
73 //获取所有子节点的名字
74 QList< QString > getChildItemNames() const;
75
76 //追加子条目 item的所有权交由父级item管理
77 void appendChild(DATreeItem* item);
78
79 //插入子条目
80 void insertChild(DATreeItem* item, int row);
81
82 //清空所有
83 void clearChild();
84
85 //判断是否存在子节点
86 bool haveChild(DATreeItem* const item) const;
87
88 //提取子节点
89 DATreeItem* takeChild(int row);
90 bool takeChild(DATreeItem* const item);
91
92 //返回child的索引 O(n)
93 int childIndex(DATreeItem* const item) const;
94
95 //删除子对象
96 void removeChild(DATreeItem* item);
97
98 //获取父级指针
99 DATreeItem* parent() const;
100
101 //用于记录当前所处的层级,如果parent不为nullptr,这个将返回parent下次item对应的层级,如果没有parent,返回-1
102 int index() const;
103
104 //判断是否在树节点上,如果此item是在satree上,此函数返回true,否则为false
105 bool isOnTree() const;
106 //获取树的指针
107 DATree* getTree() const;
108 //判断是否是顶层,parent为nullptr既是说明在顶层
109 bool isRootItem() const;
110 //设置树
111 void setTree(DATree* tree);
112};
113
114DAUTILS_API QDebug& operator<<(QDebug& dbg, const DATreeItem& item);
115
116} // end of DA
117
118#endif // SAITEM_H
基本树形结构的条目,是SAAbstractData的基类,提供了名称和图标以及父子关系管理功能 SAItem可用SATree进行管理,形成树形结构
Definition DATreeItem.h:17
Role
预设好的一些属性角色
Definition DATreeItem.h:27
@ RoleValue
Definition DATreeItem.h:30
@ RoleIcon
图标
Definition DATreeItem.h:29
通用树形结构数据存储 支持任意拷贝和赋值
Definition DATree.h:14
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44