Qt QFileSystemModel-根目录下的多个目录树

问题描述 投票:9回答:2

我正在尝试使用QTreeView创建一个QFileSystemModel,它将在树的根索引下显示多个目录树。

我正在使用下面的代码:

QFileSystemModel *model = new QFileSystemModel();
QTreeView *tree = new QTreeView();
model->setRootPath(QDir::rootPath());
tree->setModel(model);

使用此文件树将显示一个项目(文件系统的根目录)。不过,我想做的是能够显示文件系统的根目录,并有几个特定的​​目录和不相关的子树作为同级。

下面是来自不同应用程序的所需行为的图像。前两项是文件系统中的特定文件夹,其作用类似于快捷方式。最后一项与文件系统无关。

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9zQXVHUi5wbmcifQ==” alt =“期望的行为”>

c++ qt treeview
2个回答
4
投票

我建议创建一个自定义模型,也许是从QAbstractItemModel派生的,该模型具有一些顶级实体(屏幕外),您可以将多个QFileSystemModels作为其父级,每个要显示的顶级目录都应包含一个。这将使您可以根据显示的目录类型以不同的方式来操纵每棵树。


0
投票

您应该能够创建一个临时目录(使用QTemporaryDir),然后在该临时目录中创建create symbolic links,该目录指向您要显示的文件和/或目录。然后使用临时目录的路径作为模型的根路径。

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