打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Qt之QFileIconProvider续(获取文件图标、类型)
userphoto

2015.05.12

关注
标签: qfileiconprovider
qtemporaryfile
qt后缀获取图标
qt后缀获取类型
后缀获取图标
分类: Qt
Qt之QFileIconProvider(获取文件图标、类型)一节中已经讲解关于如何通过扩展名获取文件类型与图标。Qt5开始QPixmap::fromWinHICON(HICON)已经消失得无影无踪,且获取图标、后缀的方法仍针对本地已存在的文件,那么,只能另寻出路,此节讲述如何通过扩展名来创建临时文件,并获取对应的图标、类型。
步骤:
通过扩展名extension(.***)构造临时文件QTemporaryFile
通过QFileIconProvider获取对应的图标、类型
删除临时文件
获取图标
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;
}
效果如下:
注:
技术在于交流、沟通,转载请注明出处并保持作品的完整性。
作者:╰☆奋斗ing?孩子`  原文:http://blog.sina.com.cn/s/blog_a6fb6cc90101h2ew.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Qt之QFileIconProvider(获取文件图标、类型)
QFile详解
数码相框实现遍历文件夹图片文件
QT删除整个文件夹
QT 读取txt 文件
QT 创建文件夹||选择一个文件(夹)||拷贝 删除文件或文件夹
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服