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

时间:2012-04-13 00:20:51

标签: c++ qt treeview

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

我正在使用以下代码:

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

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

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

desired behaviour

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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