我有一个QTreeView,我想扩展最近扩展项目的所有子项目。
我尝试使用.expandAll(),但它也扩展了所有其他项目。
我很难获得最后扩展的项目的ModelIndex,如果我有它,我可以递归扩展它的孩子。
我该怎么做?
答案 0 :(得分:9)
要展开给定节点下的所有节点,我会以下列方式递归执行(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);
}
}
答案 1 :(得分:0)
从Qt 5.13开始 QTreeView :: expandRecursively https://doc.qt.io/qt-5/qtreeview.html#expandRecursively 可用