我正在尝试使用QTreeView
创建一个QFileSystemModel
,它将在树的根索引下显示多个目录树。
我正在使用以下代码:
QFileSystemModel *model = new QFileSystemModel();
QTreeView *tree = new QTreeView();
model->setRootPath(QDir::rootPath());
tree->setModel(model);
使用此文件树将显示单个项目(文件系统的根目录)。但是,我想做的是能够显示文件系统的根目录,并将几个特定的目录和不相关的子树作为兄弟。
以下是来自其他应用程序的所需行为的图像。前两项是文件系统中的特定文件夹,其作用类似于快捷方式。最后一项与文件系统无关。
答案 0 :(得分:4)
我建议创建一个自定义模型,可能来自QAbstractItemModel
,它有一些顶级实体(屏幕外),您可以为多个QFileSystemModels
父项,每个顶级目录一个显示。这将允许您以不同的方式操作每个树,具体取决于它显示的目录类型。
答案 1 :(得分:0)
您应该能够创建一个临时目录(使用QTemporaryDir),然后在该临时目录中创建create symbolic links,该目录指向您要显示的文件和/或目录。然后使用临时目录的路径作为模型的根路径。