Я использую классы QTreeView и QFileSystemModel для отображения структуры папок по заданному пути. Теперь мне нужна помощь для настройки значков для элемента дерева в соответствии с расширением файла (т. Е. Если тип файла * .png, установите значок pngIcon.svg или если тип файла * .mp4, тогда установите значок в mp4Icon.svg).
Вот мой код и снимок графического интерфейса.
from PySide2 import QtCore, QtGui, QtWidgets
import sys
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
self.verticalLayout.setObjectName("verticalLayout")
self.inodTreeView = QtWidgets.QTreeView(self.centralwidget)
self.inodTreeView.setObjectName("inodTreeView")
self.verticalLayout.addWidget(self.inodTreeView)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtWidgets.QApplication.translate("MainWindow", "MainWindow", None, -1))
class inodWindow(QtWidgets.QMainWindow,Ui_MainWindow):
def __init__(self, parent=None):
super(inodWindow, self).__init__(parent)
self.setupUi(self)
iModel = QtWidgets.QFileSystemModel()
iModel.setRootPath(QtCore.QDir.rootPath())
self.inodTreeView.setModel(iModel)
self.inodTreeView.setRootIndex(iModel.index('E:/Tech/Code/inode'))
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = inodWindow()
w.show()
sys.exit(app.exec_())
![enter image description here](https://i.stack.imgur.com/PxqNL.png)