qt - QFileSystemModel::setRootPath 行为似乎与文档不匹配
问题描述
根据 Qt5.11 文档,QFileSystemModel::setRootPath
通过在其上安装文件系统观察程序,将模型正在监视的目录设置为 newPath。对该目录中文件和目录的任何更改都将反映在模型中。
但就我的测试代码而言,其中一部分如下:
auto model = new QFileSystemModel(this);
model->setRootPath("C:/adb");
ui.treeView->setModel(model);
正在监视整个文件系统。即使我在 E 驱动器中进行了更改,我也会注意到视图(模型)中反映了相同的内容。这种行为似乎与文档不同。我在这里想念什么?
解决方案
我假设您的问题与此类似,但该答案中的链接已损坏!
所以,这对于模型来说是正确的,相同的文档说:
注意:此功能不会改变模型的结构或修改视图可用的数据。换句话说,模型的“根”没有更改为仅包括 文件系统中由 newPath 指定的目录中的文件和目录。
因此,为了将视图设置为仅显示该路径,您需要将视图设置为模型所需的索引:
QModelIndex idx = model->index(model->rootPath());
ui->treeView->setRootIndex(idx);
推荐阅读
- python - 将值附加到字典会不断替换以前的值
- java - 如何使用 Testcontainers 将可执行文件复制到 Docker 容器
- powerbi - 雪花 + Power BI 连接
- python - 在 Python 中创建标题和排序数据的问题
- javascript - Socket.io 显示用户连接数
- json - 搜索列表 (JSON) SwiftUI
- javascript - 从 Web 组件中的选定选项中获取值
- jenkins - 使用 groovy 类的 Jenkinsfile 在使用列表时不起作用
- python - Tensorflow gpu 使用 gpu-ram,但不使用计算单元?| CUPTI_ERROR_INSUFFICIENT_PRIVILEGES
- karate - [空手道][独立] 错误 - JavaFX 错误