我想创建如下:
不幸的是,Qt不支持就绪小部件。
是否有插件或任何方法可以做到这一点?
答案 0 :(得分:5)
在QFileSystemModel上使用QTreeView。如果你查看这两个链接中的第一个,它实际上包含完全相同的示例代码。
答案 1 :(得分:1)
会亲自建议不使用QWidgets执行此任务。相反,尝试利用新的闪亮QML方式构建Qt UI。这可能只是我个人的选择,但QTreeView
在我看来有几个缺陷。
在这里,您可以找到simple example如何使用QML完成这些工作。它使用Qt.labs.folderlistmodel 2.1
中的FolderListModel。
FolderListModel提供对本地文件系统中文件夹内容的信息的访问,将文件列表公开给视图和其他数据组件。
注意:通过导入Qt.labs.folderlistmodel模块可以使用此类型。 Qt.labs模块中的元素不保证在将来的版本中保持兼容。
import Qt.labs.folderlistmodel 2.1
folder属性指定要访问的文件夹。有关文件夹中文件和目录的信息是通过模型的界面提供的。
如果您坚持使用旧的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()));