来自Qt文档:
在调用setRootPath()之前,QFileSystemModel不会获取任何文件或目录。这样可以防止在此之前对文件系统进行任何不必要的查询,例如在Windows上列出驱动器。
与QDirModel(过时)不同,QFileSystemModel使用单独的线程来填充自身,因此在查询文件系统时不会导致主线程挂起。对模型填充目录之前,对rowCount()的调用将返回0。 QFileSystemModel使用文件信息保留缓存。使用QFileSystemWatcher自动保持缓存最新。
我正在使用QTreeView和一个使用可检查框的子类QFileSystemModel。
如果我在树中展开项目之前调用QFileSystemModel::rowCount(index)
,我将收到'0',无论是否有任何子目录或文件。但是,一旦它被扩展,再次调用时将给出正确的行计数。
我认为如果你调用QFileSystemModel :: setRootPath(),这将从指定的文件路径中获取数据,但它似乎在我调用{{1之前'没有“足够快地执行”(缓存未更新)在我的代码中。
QFileSystemModel::rowCount
在尝试计算该文件夹中包含的项目数量之前,有没有办法可以抢先收集子文件夹信息?
由于