Qt之QFileIconProvider
简述
QFileIconProvider类为QDirModel和QFileSystemModel类提供了文件图标。
共有类型
枚举QFileIconProvider::IconType:
| 常量 | 值 |
|---|---|
| QFileIconProvider::Computer | 0 |
| QFileIconProvider::Desktop | 1 |
| QFileIconProvider::Trashcan | 2 |
| QFileIconProvider::Network | 3 |
| QFileIconProvider::Drive | 4 |
| QFileIconProvider::Folder | 5 |
| QFileIconProvider::File | 6 |
枚举QFileIconProvider::Option:
标记QFileIconProvider::Options:
| 常量 | 值 | 描述 |
|---|---|---|
| QFileIconProvider::DontUseCustomDirectoryIcons | 0x00000001 | 始终使用默认的目录图标。有些平台允许用户设置不同的图标,自定义图标在网络或可移动驱动上查找会造成一个很大的性能影响。 |
公共函数
QIcon icon(IconType type) const
获取IconType图标类型对应的图标。QIcon icon(const QFileInfo & info) const
获取QFileInfo文件信息对应的图标。Options options() const
获取所有影响QFileIconProvider的选项。默认情况下,所有选项被禁用。void QFileIconProvider::setOptions(Options options)
设置所有影响QFileIconProvider的选项。QString type(const QFileInfo & info) const
获取QFileInfo文件信息对应的类型描述。
示例
IconType
获取IconType图标类型对应的图标:
效果
源码
QListWidget *pListWidget = new QListWidget(this);
pListWidget->setIconSize(QSize(48, 48)); // 设置单元项图片大小
pListWidget->setResizeMode(QListView::Adjust); // 设置大小模式-可调节
pListWidget->setViewMode(QListView::IconMode); // 设置显示模式
pListWidget->setMovement(QListView::Static); // 设置单元项不可被拖动
pListWidget->setSpacing(10); // 设置单元项间距
for (int i = 0; i <= 6; ++i)
{
// 获取图标
QFileIconProvider provider;
QIcon icon = provider.icon((QFileIconProvider::IconType)i);
// 添加单元项
QListWidgetItem *pItem = new QListWidgetItem(pListWidget);
pItem->setIcon(icon);
pListWidget->addItem(pItem);
}
QFileInfo
获取QFileInfo文件信息对应的图标、类型描述:
效果
源码
QStringList strList;
strList << QString::fromLocal8Bit("新建文件夹") << QString::fromLocal8Bit("新建公文包")
<< QString::fromLocal8Bit("不存在此文件.exe") << QString::fromLocal8Bit("新建 360压缩 ZIP 文件.zip")
<< QString::fromLocal8Bit("新建 HTTP Archive File.har") << QString::fromLocal8Bit("新建 HttpWatch Log File.hwl")
<< QString::fromLocal8Bit("新建 Microsoft Access 数据库.accdb") << QString::fromLocal8Bit("新建 Microsoft Excel 工作表.xlsx")
<< QString::fromLocal8Bit("新建 Microsoft PowerPoint 演示文稿.pptx") << QString::fromLocal8Bit("新建 Microsoft Word 文档.docx")
<< QString::fromLocal8Bit("新建日记本文档.jnt") << QString::fromLocal8Bit("新建文本文档.txt");
for (int i = 0; i < strList.count(); ++i)
{
QFileInfo info;
info.setFile(QString("E:\\%1").arg(strList.at(i)));
// 获取图标、类型
QFileIconProvider provider;
QIcon icon = provider.icon(info);
QString strType = provider.type(info);
// 添加单元项
QListWidgetItem *pItem = new QListWidgetItem(pListWidget);
pItem->setIcon(icon);
pItem->setText(strType);
pListWidget->addItem(pItem);
}
这里需要注意,如果要获取文件相关的信息 - 图标、类型,那么,本地必须存在这些文件。如果不存在,那么图标不会显示,而且类型会变为Unknow(如图:不存在此文件.exe)。
那么,如果想要通过不存在的文件获取相关的信息该如何处理呢?下节我们分享。
Qt之QFileIconProvider的更多相关文章
- Qt之QFileIconProvider(根据扩展名获取文件图标、类型)
简述 在Qt之QFileIconProvider一节中已经讲解关于如何获取文件图标与类型.但只仍针对本地已存在的文件,此节,我们主要运用前面分享的内容,讲述如何通过任意后缀或本地不存在的文件来获取相关 ...
- 《Qt 实战一二三》
简介 "我们来自Qt分享&&交流,我们来自Qt Quick分享&&交流",不管你是笑了,还是笑了,反正我们是认真的.我们就是要找寻一种Hold不住的 ...
- Qt之根据扩展名获取文件图标、类型
简述 在C++根据扩展名获取文件图标.类型一节中我们分享了如何根据扩展名来获取对应的文件图标.类型,下面.我们在Qt中使用它. 简述 示例 效果 源码 更多参考 示例 如下,我们根据扩展名来获取对应的 ...
- QTableWidget详解(样式、右键菜单、表头塌陷、多选等)
在Qt的开发过程中,时常会用到表单(QTableWidget)这个控件,网上的资料不少,但是都是最基本的,有一些比较经常遇到的问题也说得不太清楚.所以,今天就在这里总结一下! 以下为个人模拟Windo ...
- QTableWidget具体解释(样式、右键菜单、表头塌陷、多选等) (非代理)
在公司公示Qt开发一段时间,表格用到不少,所以,今天在这做个总结,防止以后忘记. 下面为个人模拟Windows资源管理器的一个表单.(写的比較粗糙,谅解一下) 一.设置表单样式 table_widge ...
- QTableWidget - 基础讲解(2) 样式、右键菜单、表头塌陷、多选等
转载:https://www.cnblogs.com/zhoug2020/p/3789076.html 在Qt的开发过程中,时常会用到表单(QTableWidget)这个控件,网上的资料不少,但是都是 ...
- 将vim作为QT开发的IDE
转载请注明链接与作者huihui1988 用了一段时间的vim,喜欢上了这种简洁高效的编辑器.恰逢正在学习QT中,于是将vim变成了开发QT的工具.以下是具体配置. 一.语法高亮支持: 1.打开VIM ...
- Qt的类:qfileinfogatherer
这篇文章中,探索Qt中的类qfileinfogatherer类,先给出私有类头文件.我们先想一想要形成一个信息采集者,需要什么?需要一个线程,当文件信息发生变化的时候,作为一个槽来接收信号. 先预备一 ...
- Qt 中一些常用类中文说明
Qt 中一些常用类中文说明是本文讲述的内容,这篇文章主要是介绍Qt 当中经常使用的类,采取的是使用字母索引的方式,下面的类是被经常使用的. QDataStream 为QIODevice提供了一串的二进 ...
随机推荐
- Codeforces 679A Bear and Prime 100
链接:传送门 题意:给你一个隐藏数,这个隐藏数在[2,100]之间,现在最多可以询问20次,每次询问的是这个数是不是隐藏数的底数,是为yes,不是为no,每次询问后都需要flush一下输出缓冲区,最后 ...
- CF1037E Trips (离线+图上构造)
题目大意:一共有n个人,每天早上会有两个人成为朋友,朋友关系不具有传递性,晚上,它们会组织旅游,如果一个人去旅游,那么他不少于$k$个朋友也要和他去旅游,求每天的最大旅游人数 一开始并没有想到反向建图 ...
- vue实现双向绑定原理
- java类的属性
类的嵌套!!!!!!!!!! 首先我们创建一个学生卡卡号的一个类,这个类有两个属性,校园卡号和银行卡号 package cuteSnow; public class StudentCard { pub ...
- Ubuntu 15.10 安装推荐链接
整理一些Ubuntu 15.10系统安装使用的链接. Ubuntu官网下载:http://www.ubuntu.com/download/desktop,目前最新的版本是Ubuntu 15.10. 网 ...
- Core abstraction layer for telecommunication network applications
A new sub-system, the core abstraction layer (CAL), is introduced to the middleware layer of the mul ...
- Oracle_角色_权限具体说明
一.Oracle内置角色connect与resource的权限 grant connect,resource to user; CONNECT角色: --是授予终于用户的典型权利,最主要的 ALT ...
- codevs 3372 选学霸(hash+并查集+多重背包)
先通过并查集处理出来有多少种不同的集合,每一个集合有多少人.一定要不要忘记了与别的没有联系的独立点. 并查集的时候能够通过hash处理出来每一个数目同样的集合的个数. 这样以人数为权值.个数为限制进行 ...
- C++语言笔记系列之十八——虚函数(1)
1.C++中的多态 (1)多态性:同一个函数的调用能够进行不同的操作,函数重载是实现多态的一种手段. (2)联编:在编译阶段进行联接.即是在编译阶段将一个函数的调用点和函数的定义点联接起来. A.静态 ...
- Reroute Unassigned Shards——遇到主shard 出现的解决方法就是重新路由
Red Cluster! 摘自:http://blog.kiyanpro.com/2016/03/06/elasticsearch/reroute-unassigned-shards/ There a ...