qt - 如何遍历树模型中的所有索引
问题描述
我想遍历树模型中的所有索引,如图所示。
我写的函数给出了堆栈溢出错误。
void iterate(const QModelIndex & index, const QAbstractItemModel * model)
{
if (index.isValid())
PrintData( index );
if (!model->hasChildren(index) || (index.flags() & Qt::ItemNeverHasChildren))
{
return;
}
auto rows = model->rowCount();
for (int i = 0; i < rows; ++i)
iterate(model->index(i, 0, index), model);
}
解决方案
将当前索引作为参数传递QAbstractItemModel::rowCount()
以获取其行数。否则,您将获得树中根项目的数量。
所以,替换auto rows = model->rowCount();
为auto rows = model->rowCount(index);
推荐阅读
- excel - 复制一个值并粘贴相同的值,直到它到达特定的单元格
- c# - 如何使用 MSBuild 构建项目?
- sql - 多行问题
- ansible - Ansible 错误:对 smtp.office365.com:587 的身份验证失败,请检查您的用户名和/或密码
- php - PHP中的断线未显示
- javascript - 如何将文件上传到 Firebase 存储?
- nuxt.js - 如何使用外部 css 在 nuxtJS 中创建 amp 页面
- react-native - 如何在 React Native Expo 中将 API 响应数据加载到 DropDown 中?
- angular - 用于 Angular 6 项目的 gitlab-ci 文件
- reactjs - 无法让 NewsApi 数据显示在 React 中