有一种简单的方法可以将QTreeView中显示的文件的QStringList作为树吗? 当然我们可以用“/”分割每个路径,并在QStandardItemModel中做一些像appendRow这样的东西并取结果。但我认为必须有一种更简单的方法。 例如,我们有这样的文件列表(QStringList):
"dir/subdir/file.dat",
"dir/app.exe",
"other_dir/file2.dat"
结果必须是这样的QTreeView:
答案 0 :(得分:0)
是否有一种简单的方法可以显示一些文件的QStringList QTreeView是一棵树吗?
如果数据暗示为QStringList
,则建议将其转换为基于TreeItem的数据并使用Qt文档示例"Simple Tree Model Example"。你不能避免以这种或那种方式创建树状结构。使用Qt Creator或在其目录中查找该示例,并查找TreeModel类定义/实现。
如果数据不是来自QStringList或其他形式的内存中集合,而是来自实际文件系统:当然这是非常可行的。您只需要QFileSystemModel和QTreeView。一个可能有些类似的例子here。
创建您需要的最小UI并使用模型过滤器:
auto* dirModel = new QFileSystemModel(this);
dirModel->setFilter(QDir::NoDotAndDotDot |
QDir::Files | QDir::Dirs);
...或者您可以根据需要指定更好的过滤器。