社区
C++ Builder
帖子详情
如何快速地实现 TreeView 的结点枚举?
LngDotin
2006-12-07 11:07:28
TreeView 的结点放在了数据库中,且所有结点的层次不同,只有通过判断父结点的子结点 ID 才能确定它的子结点个数,用了递归法,可是枚举时好慢(近3000个不同层次的结点)。老大们,谁有好的办法,给俺指条明路,谢谢了。
本帖属纯技术帖,谢绝路过顶贴、灌水等非讨论内容。
...全文
268
4
打赏
收藏
如何快速地实现 TreeView 的结点枚举?
TreeView 的结点放在了数据库中,且所有结点的层次不同,只有通过判断父结点的子结点 ID 才能确定它的子结点个数,用了递归法,可是枚举时好慢(近3000个不同层次的结点)。老大们,谁有好的办法,给俺指条明路,谢谢了。 本帖属纯技术帖,谢绝路过顶贴、灌水等非讨论内容。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xwb1966
2006-12-08
打赏
举报
回复
一楼的正解, 就是说, 你程序一开始展现的Tree应该只包含第一层的结点, 但将该结点的HasChildren属性置true, 这样会在该结点前显示"+", 但并不真正从数据库中读. 当该结点被第一次展开时, 再到数据库中读取该结点下一层的内容, 按同样的方法仅读一层即可, 依次类推.
TreeView操作是相当慢的, 只有通过这种办法, 将一次性数据库读取分担到每次展开时读取, 才能解决这个问题, 而且给人的感觉丝毫没有受到影响.
当然, 这种方法也有弱点, 比如调入以后要直接在Tree中遍历查找的功能就要受到限制了.
controstr
2006-12-07
打赏
举报
回复
用几个字段分别存放TreeView各节点的值,本身的序号,父节点的序号,及排序序号
在显示时,如果该节点值没有父节点,则该节点值本身就是父节点,如果存在父节点,则先查找到它的父节点,再AddChild就可以了
一个循环分别读取数据库中的数据就可以遍历所有数据
不知道我说的LZ是否明白
LngDotin
2006-12-07
打赏
举报
回复
回答我想干什么:
一个空 TreeView ,我想把藏在数据库中的各结点按层次枚举出来。数据库有一个字段放有父、子结点的逻辑关系。
wood542344
2006-12-07
打赏
举报
回复
这个问题好像以前的帖子讨论过的。递归的效率是慢了点,不过可以不要一次性全把树整棵都画起来啊。可以先把根结点和根结点下一层结点先画好。下一层子结点先不要画。如果有子结点则先加一个空结点,没有则不加。
最后点击有子结点的结点时,再去数据库里找子结点。。。
这样不会很卡,但访问数据库的次数明显增多。楼主自己看着办喽。
FormCreate 低代码表单设计器
好用的Vue低代码可视化 AI 表单设计器,可以通过拖拽的方式
快速
创建表单,提高开发者对表单的开发效率。支持PC端和移动端,目前在政务系统、OA系统、ERP系统、电商系统、流程管理等系统中已稳定应用。
QWebEngineView features include link clicking, back navigation, and message response handling
代码下载链接: https://pan.quark.cn/s/22cf0950b4f1 在QT框架中,`QWebEngineView`被视为一个关键组件,其主要功能是展示网络页面内容,并且该组件采用了Google的Chromium引擎作为其运行基础。本文将全面阐述如何运用`QWebEngineView`来
实现
链接的交互、浏览历史的回退与前进操作,以及如何对网页中的消息进行响应,并且将探讨其可能引发的内存管理挑战。 1. **构建QWebEngineView** 初始化一个`QWebEngineView`实例的过程十分便捷,通常在应用程序的主窗口或对话框的构造函数中进行。例如,在`main.cpp`文件中,可以将`QWebEngineView`集成到主应用程序窗口中: ```cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QWebEngineView *webView = new QWebEngineView(this); setCentralWidget(webView); } ``` 2. **载入网页内容** 通过`QWebEngineView`提供的`load()`方法,可以加载指定的URL地址或本地HTML文档: ```cpp webView->load(QUrl("http://www.example.com")); ``` 3. **交互链接点击事件** 若要捕捉并处理用户在网页上对链接的点击行为,可以配置`QWebEngineView`的`linkClicked`信号,并将其连接至自定义的槽函数: ```cpp connect(webView, &QWebEng...
磁环管成型机.rar
磁环管成型机.rar
Htmx-Fragment-Contract-Check-v1.0-原创源码与文档.zip
原创本地工程工具合集,每个资源均包含独立源码、README、MIT License、原创与授权声明、3项自动化测试、可复现合成示例、离线 JSON、HTML、SVG 报告及 1080×720 真实运行截图。Node.js 18+ 可直接运行,适合开发者进行工程预检、数据校验和证据留档;不包含第三方项目源码、模型权重、官方素材或账号数据。
download.txt内容
源码链接: https://pan.quark.cn/s/a4b39357ea24 2019年发布的vue.js教学视频涵盖了vue2.5版本的实际操作项目源代码,并提供了vue app开发课程的源代码,属于前端开发领域。 此外,还有最新整理的vue.js视频教程集合,包含百套教程供学习使用。 还有前端实战项目专注于vuejs2.0版本,以及针对移动端APP开发的vue.js视频教程,并且搭配了React Native基础教程和电商领域的实战项目。
C++ Builder
13,871
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章