擅长:python、mysql、java
<p>QFileSystemModel并没有遵循传统的删除项目的函数,我想是因为它具有潜在的破坏性。在</p>
<p>您需要为每一个调用<code>self.model.remove(index)</code>。这将永久删除这些文件。
如果它是一个文件夹,您还需要调用<code>self.model.rmdir(index)</code>。在</p>
<p>看到了吗
<a href="http://doc.qt.io/qt-4.8/qfilesystemmodel.html#remove" rel="nofollow noreferrer">http://doc.qt.io/qt-4.8/qfilesystemmodel.html#remove</a></p>
<p>如果您只是想隐藏行,那么您可以通过使用<a href="http://doc.qt.io/qt-4.8/qdir.html#setNameFilters" rel="nofollow noreferrer">QDir::setNameFIlters</a>的<a href="http://doc.qt.io/qt-4.8/qfilesystemmodel.html#setNameFilters" rel="nofollow noreferrer">QFileSystem.setNameFilters</a>添加一个过滤器列表,例如.[“*.cpp”,“*.h”]。在</p>
<p>如果您正在做更专业的事情,那么您可以使用<code>QSortFilterProxy</code>。或者直接与QRegExp一起使用,或者使用子类实现<code>filterAcceptsRow()</code></p>