如何在QT中从QFileSystemModel中排除映射的网络驱动器?

我在树视图中使用自定义子类QFileSystemModel,以允许用户使用复选框选择文件夹。我的问题是映射的网络驱动器被列为硬盘驱动器,但我无法对它们进行操作,因此我只想显示本地驱动器。如何强制QFileSystemModel仅显示本地驱动器?     
已邀请:
从我从源和文档中可以看出,我不可能直接使用QFileSystemModel。 我能想到的唯一可能的解决方法是使用QSortFilterProxyModel子类和重新定义的filterAcceptsRow()或filterAcceptsColumn()或两者,我不确定哪一个,因为我没有使用QFileSystemModel并且不知道它认为列和什么行。然后重新定义的方法可以通过使用带有QFileSystemModel :: FilePathRole的data()或使用qobject_cast<>并调用QFileSystemModel :: filePath()来找出文件的路径。然后它会以某种方式找出驱动器的根路径并调用GetDriveType()WinAPI函数,因为Qt显然无法确定驱动器是否为网络。当然,这些东西必须放在
#ifdef Q_OS_WIN32
之下。 这看起来很复杂,但我想不出别的办法。我也不确定GetDriveType()有多快,但是如果存在性能问题,总是可以实现某种缓存。     
如何将QFileSystemModel过滤器仅用于QDir :: Drives。据我所知,这仅列出了本地硬盘。     

要回复问题请先登录注册