步骤:
获取图标 QIcon FileIcon::fileExtensionIcon(const QString & extension) const { QFileIconProvider icon_provider; QIcon icon; QTemporaryFile tmp_file(QDir::tempPath() + QDir::separator() + QCoreApplication::applicationName() + "_XXXXXX" + extension); tmp_file.setAutoRemove(false); if(tmp_file.open()) { QString file_name = tmp_file.fileName(); tmp_file.write(QByteArray()); tmp_file.close(); icon = icon_provider.icon(QFileInfo(file_name)); tmp_file.remove(); } else { qCritical()<<QString("failed to write temporary file %1") .arg(tmp_file.fileName()); } return icon; } 获取类型 QString FileIcon::fileExtensionType(const QString & extension) const { QFileIconProvider icon_provider; QString type; QTemporaryFile tmp_file(QDir::tempPath() + QDir::separator() + QCoreApplication::applicationName() + "_XXXXXX" + extension); tmp_file.setAutoRemove(false); if(tmp_file.open()) { QString file_name = tmp_file.fileName(); tmp_file.write(QByteArray()); tmp_file.close(); type = icon_provider.type(QFileInfo(file_name)); tmp_file.remove(); } else { qCritical()<<QString("failed to write temporary file %1") .arg(tmp_file.fileName()); } return type; } 效果如下: 注: |
|