Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何滚动到当前索引?_Qt_Qtreeview_Qfilesystemmodel - Fatal编程技术网

Qt 如何滚动到当前索引?

Qt 如何滚动到当前索引?,qt,qtreeview,qfilesystemmodel,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:

我正在使用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();
执行上述代码时,滚动显示在顶部,但选择了文件

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

您可以使用

可选传递您希望项目作为第二个参数的选项,如:
qabstractemview::PositionAtTop

乐:我注意到你实际上调用了
scrollTo
,但是你调用它是为了一些
(我们看不到它是什么),你应该为
视图
调用它,这同样适用于
设置当前索引

view.scrollTo(view.currentIndex());