从环顾四周,我已经看到QFileSysetmModel中的QFileIconProvider会大大降低速度。在我的特定情况下,我根本不需要它,但是我无法找到如何轻松禁用/删除它而不会导致崩溃的方法。这是我第一次使用模型/视图框架,因此答案很可能很简单,我只是在文档中错过了它……但是现在我只能找到它的子类实例,但没有示例完全摆脱它。
答案 0 :(得分:1)
QFileIconProvider
中消耗大量时间的任务是提供图标,因为它必须加载文件等。因此,针对您的情况的解决方法是返回空QIcon
:
import sys
from PyQt4 import QtCore, QtGui
class EmptyIconProvider(QtGui.QFileIconProvider):
def icon(self, _):
return QtGui.QIcon()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
view = QtGui.QTreeView()
model = QtGui.QFileSystemModel(view)
model.setIconProvider(EmptyIconProvider())
model.setRootPath(QtCore.QDir.currentPath())
view.setModel(model)
view.setRootIndex(model.index(QtCore.QDir.currentPath()))
view.show()
sys.exit(app.exec_())