出于我们的目的,我们想立即使用QFileSystemModel完全加载QTreeView。我们意识到这可能会花费一些时间,但是最坏情况下的目录却很小(几百个文件)。我们可以在QFileSystem :: directoryLoaded信号上调用QTreeView :: expandAll(),这样可以正常工作。当然,该函数会反复被调用,但这没关系。
加载和显示完整目录时,仍然会有一些延迟。一旦所有加载/扩展完成后,我们想切换到繁忙的光标,但是我们找不到任何信号或其他迹象表明发生了这种情况。
除了使用expandAll()之外,我们还找不到其他方法来简单地加载整个树。
我们了解这种异步行为的理由;尝试打开'/'会使事情永久存在。但是我们的情况更加局限,我们需要访问所有文件信息,而无需用户直接扩展整个树。 expandAll()为我们做到了这一点,但是我们需要一个指示器来指示何时完成遍历树。