Qt之QFileIconProvider
简述
QFileIconProvider类为QDirModel和QFileSystemModel类提供了文件图标。
- 简述
- 共有类型
- 公共函数
- 示例
- IconType
- 效果
- 源码
- QFileInfo
- 效果
- 源码
- IconType
共有类型
枚举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相关推荐
- QTableWidget控件总结
1,设置QTableWidget滚动条宽度. myTableWidget->verticalScrollBar()->setStyleSheet("QScrollBar:vert ...
- Qt中如何获取系统图标
Qt中获取系统图标.类型是通过QFileIconProvider来实现的,具体如下: 一.Qt获取系统文件图标 1.获取文件夹图标 QFileIconProvider icon_provider; Q ...
- qt lineedit获取内容_Qt开发中的几个关键知识点,收藏以备参考
总第15篇 本文主要总结了用Qt框架做项目开发的过程中,比较关键的几个知识点,深入总结并收录于此,以防止后面忘记了可以快速查找.读完此文,你也可以收藏之,以备后面的开发工作中可以快速查找. 1.获取当 ...
- Qt 使用笔记 --转自 wangwenx190/Note
转自:https://github.com/wangwenx190/notes/blob/master/qt.zh.cn.md Qt 使用笔记 Qt 6 目标平台变更 Qt6 不再支持32位Windo ...
- QT 中QTimer 和 startTimer()的区别
最需要注意一点 请注意,QTimer的准确性取决于底层操作系统和硬件.timerType参数允许您自定义计时器的准确性.有关不同计时器类型的信息,请参见Qt::TimerType.大多数平台支持20毫 ...
- QT中使用rubberband橡皮筋等方法进行选中多个物体
文章目录 功能介绍 代码介绍 myitem.h/cpp 图形项 myview.h/cpp场景 主函数 结果展示 代码下载 参考 功能介绍 点击左键.按 Shift 键可以单选,按下 Ctrl 可进行多 ...
- Electron、QT和JAVA PC桌面开发技术比较
近几年PC桌面开发越来越多的被Electron,QT和Java技术占领.下面简单比较一下它们的优劣. Electron,势是开发用时快,社区轮子多,整合一下就能用.缺点是打包大,js计算弱. Java ...
- Qt实现 指针式时钟+动态时钟 (详细注释)
先上效果图: 点击运行后首先是一个指针式时钟窗口,点击Digital Clock->可以跳转到数字时钟窗口,再点击Move Clock->可以还原为指针式时钟窗口 关于整个程序的讲解都在代 ...
- 如何保证Qt状态机的最佳性能
如何保证Qt状态机的最佳性能 How to ensure the best Qt state machine performance 如果您使用Qt进行应用程序开发,并且使用状态机,那么很可能您正在使 ...
最新文章
- linux 瞬间文件数没了,关于linux:如何快速汇总文件中的所有数字?
- 【机器学习基础】Python机器学习入门指南(全)
- getprofile()获取不到路径_做一款RPG游戏,几乎都会用到的Python坐标最短路径计算...
- java 正确使用 Volatile 变量
- php js记住密码功能,jquery.cookie.js实现用户登录保存密码功能的方法_jquery
- 诞生一年来,V 语言还好吗?
- CCNP精粹系列之四----OSPF(open short path first)
- 微信小程序(看文档写实例七)微信小程序课堂宝APP实现在线课堂测试
- 数学建模需要的Matlab知识速成
- linux shell中各种分号和括号,Linux Shell中各种分号和括号#的用法总结
- [nRF52832] 外设篇 | 实验一 LED 灯 及 BUTTON 按键
- zui之0001 npm install zui
- 代码随想录第十八天 LeetCode513、112、113、106、105
- react之事件绑定(this、传参)
- Error converting data type...
- 解决win10内存占用逐渐变大(亲测有效)
- python实时监控电脑运行信息(邮件预警)
- ibm服务器报错代码大全_IBM x系列服务器报错代码
- C++数组练习题(一)
- arcgis android 气泡,arcgis for js 通用气泡
热门文章
- java单例设计模式双重_Java 设计模式 ——单例模式(饿汉,懒汉,双重锁,静态内部类)...
- 软件测试mysql存储过程的用处实例_软件测试中实际应用:MySQL5存储过程编写
- java不带括号_java – 打印数组,不带括号和逗号
- sql数据库自动增量备份_SQL自动增量
- Java BufferedReader
- c语言如何将8个字符串串联_C ++中的字符串串联:串联字符串的4种方法
- matlab分析xml文件_修改Java中的XML文件(DOM分析器)
- 为何要进入互联网行业做产品经理?
- Java零拷贝四步曲——HeapByteBuffer与DirectByteBuffer
- Asp.Net Web API(一)