QFileSystemModel禁用QFileIconProvider

时间:2018-11-08 23:44:46

标签: python pyqt pyqt4 qfilesystemmodel

从环顾四周,我已经看到QFileSysetmModel中的QFileIconProvider会大大降低速度。在我的特定情况下,我根本不需要它,但是我无法找到如何轻松禁用/删除它而不会导致崩溃的方法。这是我第一次使用模型/视图框架,因此答案很可能很简单,我只是在文档中错过了它……但是现在我只能找到它的子类实例,但没有示例完全摆脱它。

1 个答案:

答案 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_())