简述

QFileIconProvider类为QDirModel和QFileSystemModel类提供了文件图标。

  • 简述
  • 共有类型
  • 公共函数
  • 示例
    • IconType

      • 效果
      • 源码
    • QFileInfo
      • 效果
      • 源码

共有类型

枚举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)。

那么,如果想要通过不存在的文件获取相关的信息该如何处理呢?下节我们分享。

转载于:https://www.cnblogs.com/itrena/p/5938292.html

Qt之QFileIconProvider相关推荐

  1. QTableWidget控件总结

    1,设置QTableWidget滚动条宽度. myTableWidget->verticalScrollBar()->setStyleSheet("QScrollBar:vert ...

  2. Qt中如何获取系统图标

    Qt中获取系统图标.类型是通过QFileIconProvider来实现的,具体如下: 一.Qt获取系统文件图标 1.获取文件夹图标 QFileIconProvider icon_provider; Q ...

  3. qt lineedit获取内容_Qt开发中的几个关键知识点,收藏以备参考

    总第15篇 本文主要总结了用Qt框架做项目开发的过程中,比较关键的几个知识点,深入总结并收录于此,以防止后面忘记了可以快速查找.读完此文,你也可以收藏之,以备后面的开发工作中可以快速查找. 1.获取当 ...

  4. Qt 使用笔记 --转自 wangwenx190/Note

    转自:https://github.com/wangwenx190/notes/blob/master/qt.zh.cn.md Qt 使用笔记 Qt 6 目标平台变更 Qt6 不再支持32位Windo ...

  5. QT 中QTimer 和 startTimer()的区别

    最需要注意一点 请注意,QTimer的准确性取决于底层操作系统和硬件.timerType参数允许您自定义计时器的准确性.有关不同计时器类型的信息,请参见Qt::TimerType.大多数平台支持20毫 ...

  6. QT中使用rubberband橡皮筋等方法进行选中多个物体

    文章目录 功能介绍 代码介绍 myitem.h/cpp 图形项 myview.h/cpp场景 主函数 结果展示 代码下载 参考 功能介绍 点击左键.按 Shift 键可以单选,按下 Ctrl 可进行多 ...

  7. Electron、QT和JAVA PC桌面开发技术比较

    近几年PC桌面开发越来越多的被Electron,QT和Java技术占领.下面简单比较一下它们的优劣. Electron,势是开发用时快,社区轮子多,整合一下就能用.缺点是打包大,js计算弱. Java ...

  8. Qt实现 指针式时钟+动态时钟 (详细注释)

    先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...

  9. 如何保证Qt状态机的最佳性能

    如何保证Qt状态机的最佳性能 How to ensure the best Qt state machine performance 如果您使用Qt进行应用程序开发,并且使用状态机,那么很可能您正在使 ...

最新文章

  1. linux 瞬间文件数没了,关于linux:如何快速汇总文件中的所有数字?
  2. 【机器学习基础】Python机器学习入门指南(全)
  3. getprofile()获取不到路径_做一款RPG游戏,几乎都会用到的Python坐标最短路径计算...
  4. java 正确使用 Volatile 变量
  5. php js记住密码功能,jquery.cookie.js实现用户登录保存密码功能的方法_jquery
  6. 诞生一年来,V 语言还好吗?
  7. CCNP精粹系列之四----OSPF(open short path first)
  8. 微信小程序(看文档写实例七)微信小程序课堂宝APP实现在线课堂测试
  9. 数学建模需要的Matlab知识速成
  10. linux shell中各种分号和括号,Linux Shell中各种分号和括号#的用法总结
  11. [nRF52832] 外设篇 | 实验一 LED 灯 及 BUTTON 按键
  12. zui之0001 npm install zui
  13. 代码随想录第十八天 LeetCode513、112、113、106、105
  14. react之事件绑定(this、传参)
  15. Error converting data type...
  16. 解决win10内存占用逐渐变大(亲测有效)
  17. python实时监控电脑运行信息(邮件预警)
  18. ibm服务器报错代码大全_IBM x系列服务器报错代码
  19. C++数组练习题(一)
  20. arcgis android 气泡,arcgis for js 通用气泡

热门文章

  1. java单例设计模式双重_Java 设计模式 ——单例模式(饿汉,懒汉,双重锁,静态内部类)...
  2. 软件测试mysql存储过程的用处实例_软件测试中实际应用:MySQL5存储过程编写
  3. java不带括号_java – 打印数组,不带括号和逗号
  4. sql数据库自动增量备份_SQL自动增量
  5. Java BufferedReader
  6. c语言如何将8个字符串串联_C ++中的字符串串联:串联字符串的4种方法
  7. matlab分析xml文件_修改Java中的XML文件(DOM分析器)
  8. 为何要进入互联网行业做产品经理?
  9. Java零拷贝四步曲——HeapByteBuffer与DirectByteBuffer
  10. Asp.Net Web API(一)