9

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

我正在使用以下代码:

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

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

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

期望的行为

4

2 回答 2

5

我建议创建一个自定义模型,可能源自QAbstractItemModel,该模型具有一些顶级实体(屏幕外),您可以将多个实体作为其父QFileSystemModels级,一个用于您要显示的每个顶级目录。这将允许您以不同的方式操作每棵树,具体取决于它所显示的目录类型。

于 2012-05-10T12:45:46.493 回答
1

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

于 2020-03-25T17:30:28.910 回答