【发布时间】:2019-06-18 00:47:12
【问题描述】:
我正在 Windows 上开发 Qt 应用程序。为了显示特定文件夹的文件,我将 QTreeView 与 QFileSystemModel 一起使用。到目前为止一切都很好,但我遇到了一个非常具体的问题,这让我抓狂:当我在我的应用程序中扩展了一个文件夹时,我无法对它的父文件夹做任何事情。
我构建了一个小项目只是为了说明这个问题。下面是我如何定义我的 QFileSystemModel 并将其应用到我的 QTreeView:
QFileSystemModel *myModel = new QFileSystemModel;
myModel->setRootPath(myRootPath);
ui->treeView->setModel(myModel);
为了说明我的问题,请查看此图片
虽然我没有展开“测试文件夹 2”,但我可以对“测试文件夹”做我想做的事情。我可以通过 Windows 资源管理器重命名、移动甚至删除,一切都应用到我的程序中。但是,当我展开“测试文件夹 2”时,突然我的“测试文件夹”不再可编辑。 Windows 说该文件夹“在另一个应用程序中打开”。
我相信任何人都可以用上面的三行来重现这个问题,所以我不认为这是一个项目特定的问题。有谁知道为什么会这样?
编辑: 显然这是一个只有 Windows 的问题。刚刚在linux上试过,效果很好。这是 NTFS 问题吗?有什么想法吗?
【问题讨论】:
标签: c++ qt qfilesystemmodel