You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5中双击QTreeView项时如何获取其层级深度?

获取QTreeView双击项的层级深度

完全可以获取被点击项的层级深度,以下是两种实用实现方式:

方法一:父索引循环计数(兼容所有Qt版本)

在doubleClicked信号对应的槽函数中,通过传入的QModelIndex循环向上查找父索引,每找到一个有效父索引就计数加1,直到顶层索引:

void onTreeViewDoubleClicked(const QModelIndex &index) {
    int depth = 0;
    QModelIndex currentIdx = index;
    while (currentIdx.parent().isValid()) {
        depth++;
        currentIdx = currentIdx.parent();
    }
    // 此时depth即为层级深度:顶层项(Item1、Item2)为0,Item1.1为1,Item2.1.1为2
    qDebug() << "当前项层级深度:" << depth;
}

方法二:直接调用depth()方法(Qt 5.11及以上版本)

Qt 5.11及更高版本为QModelIndex提供了depth()方法,可直接返回索引的层级深度,顶层项深度为0,子项深度依次递增:

void onTreeViewDoubleClicked(const QModelIndex &index) {
    int depth = index.depth();
    qDebug() << "当前项层级深度:" << depth;
}

两种方式都能得到你需要的层级结果,可根据项目使用的Qt版本选择对应方法。

内容的提问来源于stack exchange,提问作者DJames

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:12:02