Qt5.15 C++ QStandardItemModel遍历
时间: 2024-11-23 21:38:59 浏览: 26
在Qt 5.15版本中,QStandardItemModel是一个用于表示树形数据结构的模型,通常用于QTreeView这样的界面组件。如果你想遍历这个模型的数据,可以按照以下步骤操作:
1. 创建模型实例并填充数据:
```cpp
QStandardItemModel model;
// 添加行(节点)
QStandardItem parentItem(new QStandardItem("父项"));
model.appendRow(parentItem);
QStandardItem childItem1(new QStandardItem("子项1"));
parentItem.appendRow(childItem1);
QStandardItem childItem2(new QStandardItem("子项2"));
parentItem.appendRow(childItem2);
```
2. 遍历整个模型:
```cpp
for (int row = 0; row < model.rowCount(); ++row) {
QStandardItem item = model.item(row, 0); // 默认列0
qDebug() << "行" << row << ": " << item.text();
for (int column = 0; column < model.columnCount(); ++column) {
qDebug() << "\t列" << column << ": " << item.text(column);
}
// 如果有子项,递归遍历
if (item.hasChildren()) {
for (int i = 0; i < item.childCount(); ++i) {
QStandardItem child = item.child(i);
// 遍历子项...
}
}
}
```
这里通过`rowCount()`和`columnCount()`获取每一行或每一列的数量,然后使用`item(row, column)`获取特定位置的QStandardItem。如果有子项,可以进一步调用`childCount()`和`child(index)`。
阅读全文