QTreeView 是 Qt 中的一种视图类,可以展示 QAbstractItemModel 模型中的数据。如果想要设置大纲跳转(即在树形结构中将指定项展开并定位到该项),可以使用 QTreeView 的 expand 方法和 scrollTo 方法实现。
QTreeView 的 expand 方法用于展开指定项,其参数为 QModelIndex 类型的索引。例如,如果想要展开根节点下的第二个子节点,可以这样做:
QModelIndex index = model->index(1, 0, QModelIndex());
ui->treeView->expand(index);
这里的 model 是一个 QAbstractItemModel 派生类的指针,QModelIndex() 表示根节点的索引。
接着,使用 scrollTo 方法将视图定位到该项。scrollTo 方法有两个参数,第一个是需要滚动到的 QModelIndex,第二个是滚动到该项时视图中心点的位置。PositionAtCenter 表示将该项滚动到视图中心,PositionAtTop 表示将该项滚动到视图顶部。例如,将展开的节点滚动到视图顶部:
ui->treeView->scrollTo(index, QAbstractItemView::PositionAtTop);
通过组合 expand 和 scrollTo 方法,就可以实现大纲跳转的功能。