Qtreeview在所有节点目录递归查找指定内容
2023-09-14 09:05:25 时间
可以使用递归来遍历QTreeView的所有节点,然后在每个节点上逐一搜索指定内容。下面是可能的实现方式:
void traverseAndSearch(QAbstractItemModel* model, const QModelIndex& parent,
const QString& searchString) {
int rowCount = model->rowCount(parent);
int colCount = model->columnCount(parent);
for (int row = 0; row < rowCount; ++row) {
for (int col = 0; col < colCount; ++col) {
QModelIndex index = model->index(row, col, parent);
if (model->data(index).toString().contains(searchString, Qt::CaseInsensitive)) {
// Handle the found item here
QString foundText = model->data(index).toString();
qDebug() << "Found: " << foundText << " at index: " << index;
}
traverseAndSearch(model, index, searchString); // Recurse on the child items
}
}
}
这个函数使用了一个递归结构来遍历QTreeView的所有节点,并在每个节点上搜索指定内容。如果发现了匹配的内容,就在这里处理它(在上述代码中没有描述具体操作)。我们将结果打印出来,但你可以根据你的需求采取其他行动。
你可以在你的代码中调用这个函数,如下所示:
QTreeView* treeView = new QTreeView();
// Set up the QTreeView model and view as required
QString searchString = "your search text";
traverseAndSearch(treeView->model(), QModelIndex(), searchString);
请注意,这个函数是在基于模型的 树视图 Qt 5 中实现的,因此参数类型可能会因 Qt 版本或你正在使用的控件类型而有所不同。但是,这个逻辑可以适用于其他基于模型的树视图实现。
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
相关文章
- Java实现 LeetCode 19删除链表的倒数第N个节点
- k8s 更改pod数量限制(默认每个节点最多110组pod)0/3 nodes are available: 3 Insufficient cpu报错排查
- 【网址收藏】安装简易OpenShift单节点并配置DNS泛域名(dnsmasq)
- Kafka批量多节点启动shell脚本
- 多源动态最优潮流的分布鲁棒优化方法(IEEE118节点)(Matlab代码实现)
- 云图说|DDS读写两步走,带您领略只读节点的风采
- 【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )
- [LeetCode] 382. 链表随机节点 ☆☆☆(随机算法:蓄水池抽样)
- kubernetes限制节点启动的pod数量
- 遍历树结构,当节点的children为空时,递归处理children设为undefined(递归)(整理)
- JQuery的父、子、兄弟节点查找方法
- K8S故障排查指南:部分节点无法启动Pod资源-Pod处于ContainerCreating状态
- Android5.1/7.1 Selinux JNI访问新增/dev/xxx设备节点