MCPcopy Create free account
hub / github.com/PyQt5/PyQt / FileIconProvider

Class FileIconProvider

QFileSystemModel/CustomIcon.py:27–63  ·  view source on GitHub ↗

图标提供类

Source from the content-addressed store, hash-verified

25
26
27class FileIconProvider(QFileIconProvider):
28 """图标提供类"""
29
30 def __init__(self, *args, **kwargs):
31 super(FileIconProvider, self).__init__(*args, **kwargs)
32 self.DirIcon = QIcon("Data/icons/folder.png")
33 self.TxtIcon = QIcon("Data/icons/file.png")
34
35 def icon(self, type_info):
36 '''
37 :param fileInfo: 参考http://doc.qt.io/qt-5/qfileinfo.html
38 '''
39 if isinstance(type_info, QFileInfo):
40 # 如果type_info是QFileInfo类型则用getInfoIcon来返回图标
41 return self.getInfoIcon(type_info)
42 # 如果type_info是QFileIconProvider自身的IconType枚举类型则执行下面的方法
43 # 这里只能自定义通用的几种类型,参考http://doc.qt.io/qt-5/qfileiconprovider.html#IconType-enum
44 '''
45 QFileIconProvider::Computer 0
46 QFileIconProvider::Desktop 1
47 QFileIconProvider::Trashcan 2
48 QFileIconProvider::Network 3
49 QFileIconProvider::Drive 4
50 QFileIconProvider::Folder 5
51 QFileIconProvider::File 6
52 '''
53 if type_info == QFileIconProvider.Folder:
54 # 如果是文件夹
55 return self.DirIcon
56 return super(FileIconProvider, self).icon(type_info)
57
58 def getInfoIcon(self, type_info):
59 if type_info.isDir(): # 文件夹
60 return self.DirIcon
61 if type_info.isFile() and type_info.suffix() == "txt": # 文件并且是txt
62 return self.TxtIcon
63 return super(FileIconProvider, self).icon(type_info)
64
65
66if __name__ == "__main__":

Callers 1

CustomIcon.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected