2025-04-30 16:29:17 +08:00
|
|
|
#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;
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-05-16 19:20:46 +08:00
|
|
|
|
|
|
|
|
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(); // 未找到
|
|
|
|
|
}
|