Qt QIconProvider';为不在筛选器中的文件调用s icon方法

Qt QIconProvider';为不在筛选器中的文件调用s icon方法,qt,filter,thumbnails,qlistview,qfilesystemmodel,Qt,Filter,Thumbnails,Qlistview,Qfilesystemmodel,我试图用QFileSystemModel填充QListWidget(在图标视图中)。我只想列出具有特定扩展名的文件夹和文件。我想将我的文件预览显示为它们的缩略图,因此我正在子类化QIconProvider类,并将其设置为我的模型。 在将我的QIconProvider设置为模型之前,我已经过滤了我想要的模型上的文件,为列出的目录中存在的每个文件调用了图标(const QFileInfo&info)。 我已经找到了一个在返回自定义图标之前检查文件扩展名的方法,但我想知道这是否是一种避免这种情况的方法

我试图用QFileSystemModel填充QListWidget(在图标视图中)。我只想列出具有特定扩展名的文件夹和文件。我想将我的文件预览显示为它们的缩略图,因此我正在子类化QIconProvider类,并将其设置为我的模型。 在将我的QIconProvider设置为模型之前,我已经过滤了我想要的模型上的文件,为列出的目录中存在的每个文件调用了图标(const QFileInfo&info)。 我已经找到了一个在返回自定义图标之前检查文件扩展名的方法,但我想知道这是否是一种避免这种情况的方法

m_itemsModel = new QFileSystemModel(this);  
m_itemsModel->setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);
m_itemsModel->setRootPath(QDir::homePath());
QStringList filters = formatsList();
m_itemsModel->setNameFilters(filters);
m_itemsModel->setNameFilterDisables(false);
ui.listView->setModel(m_itemsModel);
m_itemsModel->setIconProvider(new ThumbnailIconProvider(QRect(0, 0, 50, 50)));
我的QIconProvider:

    ThumbnailIconProvider::ThumbnailIconProvider(const QRect &rect)
    : QFileIconProvider() {
    m_rect = rect;
}

    QIcon ThumbnailIconProvider::icon(const QFileInfo & info) const {
        static QStringList filters = formatsList();
        QString fileName = info.fileName();
        QString extension = "*" + fileName.right(fileName.length() - fileName.lastIndexOf("."));
        if (info.isFile() && filters.contains(extension)) {
            QString path = info.absoluteFilePath();
            FileDetails details = fileDetailsFromPathForRect(path, m_rect);
            QPixmap pixmap = QPixmap::fromImage(details.image);
            QIcon icon(pixmap);
            return icon;
        }
        else
            return QFileIconProvider::icon(info);
    }
有什么想法吗