如何滚动到当前索引?

问题描述 投票:0回答:1

我正在使用QTreeView和QFileSystemModel创建文件浏览器。必须选择它,然后将树自动滚动到所选项目。但是如果没有键盘,它无法自动滚动。

QString strFile = "/usr/bin/qmake";

QFileInfo fi(strFile);
QString dirFile = fi.dir().absolutePath();

QFileSystemModel model;
model.setRootPath("/");
model.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);

QTreeView view;
view.setModel(&model);
tree.setCurrentIndex(model.index(strFile));
tree.scrollTo(model.index(strFile));

view.show();

执行以上代码时,滚动是顶部,但是文件已选择。

不滚动到所选项目有什么问题?

qt qtreeview qfilesystemmodel
1个回答
0
投票

您可以使用scrollTo

view.scrollTo(view.currentIndex()); 

可选在希望您的项目作为第二个参数的地方传递选项,例如:QAbstractItemView::PositionAtTopother

LE:我注意到您实际上调用了scrollTo,但是您为某些tree调用了它(我们看不到它是什么),应该为view调用它,对setCurrentIndex也是如此。

© www.soinside.com 2019 - 2024. All rights reserved.