如何为系统驱动器,文件夹和文件创建浏览器

时间:2014-10-25 23:47:06

标签: c++ qt qt5 qtgui file-browser

我想创建如下:

不幸的是,Qt不支持就绪小部件。

是否有插件或任何方法可以做到这一点?

2 个答案:

答案 0 :(得分:5)

QFileSystemModel上使用QTreeView。如果你查看这两个链接中的第一个,它实际上包含完全相同的示例代码。

答案 1 :(得分:1)

如果可以避免,

会亲自建议使用QWidgets执行此任务。相反,尝试利用新的闪亮QML方式构建Qt UI。这可能只是我个人的选择,但QTreeView在我看来有几个缺陷。

QML

在这里,您可以找到simple example如何使用QML完成这些工作。它使用Qt.labs.folderlistmodel 2.1中的FolderListModel

  

FolderListModel提供对本地文件系统中文件夹内容的信息的访问,将文件列表公开给视图和其他数据组件。

     

注意:通过导入Qt.labs.folderlistmodel模块可以使用此类型。 Qt.labs模块中的元素不保证在将来的版本中保持兼容。

     

import Qt.labs.folderlistmodel 2.1

     

folder属性指定要访问的文件夹。有关文件夹中文件和目录的信息是通过模型的界面提供的。

C ++和QWidgets

如果您坚持使用旧的QWidget集合在C ++中进行操作,那么您的选择可能是使用QTreeView,因为它毕竟是树视图,然后将其与QFileSystemModel结合使用。

代码将是这样的:

QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir::currentPath());
QTreeView *tree = new QTreeView(splitter);
tree->setModel(model);
tree->setRootIndex(model->index(QDir::currentPath()));