递归展开 QTreeView 中 item 的所有子项

Recursively expand all child items of item in QTreeView

我有一个 QTreeView,我想展开最近展开的项目的所有子项目。

我尝试使用 .expandAll(),但它也展开了所有其他项目。

我很难获得最后展开的项目的 ModelIndex,如果我有它,我可以递归展开它的子项。

我该怎么做?

要展开给定节点下方的所有节点,我将按以下方式递归执行 (C++):

void expandChildren(const QModelIndex &index, QTreeView *view)
{
    if (!index.isValid()) {
        return;
    }

    int childCount = index.model()->rowCount(index);
    for (int i = 0; i < childCount; i++) {
        const QModelIndex &child = index.child(i, 0);
        // Recursively call the function for each child node.
        expandChildren(child, view);
    }

    if (!view->expanded(index)) {
        view->expand(index);
    }
}

从 Qt 5.13 开始 QTreeView::expandRecursively 可用