如何滚动到当前索引?

时间:2019-10-29 05:11:10

标签: qt qtreeview qfilesystemmodel

我正在使用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();

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用scrollTo

view.scrollTo(view.currentIndex()); 

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

LE:我注意到您实际上叫scrollTo,但您为某个tree打电话(我们看不出它是什么),应该给view打电话, setCurrentIndex也是如此。