TreeEdit
TreeEdit copied to clipboard
Qml TreeEdit with Controls2 (Qml树结构编辑器,使用Controls2实现)
TreeEdit
Qml实现的树结构编辑器。
| 功能 | 进度 | tag |
|---|---|---|
| 树结构的缩进 | 完成 | 0.1.0 |
| 展开、折叠 | 完成 | 0.1.0 |
| 添加 | 完成 | 0.1.0 |
| 删除 | 完成 | 0.1.0 |
| 重命名 | 完成 | 0.1.0 |
| 搜索 | 完成 | 0.1.0 |
| 导入 | 完成 | 0.2.0 |
| 导出 | 完成 | 0.2.0 |
| 性能测试 | 支持 | master |
| 节点属性编辑 | 计划中 | |
| 勾选 | 计划中 | |
| 行选 | 计划中 | |
| 拖拽 | 计划中 |
原理
View 使用qml中的 Controls2 ListView
Model使用C++中的 QAbstractListModel子类
model中增加额外数据,表示树结构的深度、父子关系等,view通过额外数据显示、处理。
Qt版本
5.12.x
Build
| Windows | Ubuntu | MacOS | Android | IOS |
|---|---|---|---|---|
Release
| 许可 | 已发布 | 下载 | 下载次数 |
|---|---|---|---|
性能测试
测试环境
CPU: Intel i5-8400 2.8GHz
内存: 16GB
OS: Windows10 1909
Qt: 5.12.6
编译器: msvc 2017 x64
测试框架: QTest
测试结果
| 节点数量 | 嵌套数量 | 导入平均耗时(毫秒) | 导出平均耗时(毫秒) |
|---|---|---|---|
| 1 | 1 | 0.050 | 0.96 |
| 1 | 10 | 0.089 | 5.15 |
| 1 | 100 | 0.57 | 12 |
| 10 | 1 | 0.10 | 3.7 |
| 10 | 10 | 0.42 | 6.0 |
| 10 | 100 | 5.1 | 79.5 |
| 100 | 1 | 0.65 | 6.6 |
| 100 | 10 | 3.8 | 40.0 |
| 100 | 100 | 59 | 468 |
| 1000 | 1 | 5.8 | 33 |
| 1000 | 10 | 37 | 108 |
| 1000 | 100 | 671 | 3765 |
| 10000 | 1 | 59 | 74 |
| 10000 | 10 | 386 | 823 |
| 10000 | 100 | 6720 | 39563 |
效果预览
软件界面

导入

搜索

创建

删除

重命名

折叠和展开

清空

导出
