#include "tools.h" int getLevel(QStandardItem *item) { int level = 0; QStandardItem *parent = item->parent(); if(parent) { while (parent) { level++; parent = parent->parent(); } return level; } else{ return -1; } } QModelIndex findIndex(const QAbstractItemModel* model, const QVariant& target, int role, const QModelIndex& parent) { for (int row = 0; row < model->rowCount(parent); ++row) { QModelIndex idx = model->index(row, 0, parent); // 假设查找第0列 if (model->data(idx, role) == target) { return idx; // 找到匹配项 } // 递归查找子项 if (model->hasChildren(idx)) { QModelIndex childIdx = findIndex(model, target, role, idx); if (childIdx.isValid()) { return childIdx; } } } return QModelIndex(); // 未找到 }