我想迭代树模型中的所有索引,如图所示。
我编写的函数给出了堆栈溢出错误。
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);
}
Run Code Online (Sandbox Code Playgroud)
将当前索引作为 的参数传递QAbstractItemModel::rowCount()以获取其行数。否则,您将获得树中根项目的数量。
所以,替换auto rows = model->rowCount();为auto rows = model->rowCount(index);
| 归档时间: |
|
| 查看次数: |
2088 次 |
| 最近记录: |