VS2010怎么加载QT的QICON

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2010怎么加载QT的QICON相关的知识,希望对你有一定的参考价值。

VS2010 QIcon("./images/bubble.png") VS2010怎么加载有关QT的资源 让QT的程序显示这个图标

工程文件夹里找,有个.qrc文件,用vs打开或其他能打开的软件打开,照这个相应的形式添加图片资源就好了。例如:<file>images/right.png</file>。
这样right.png就可以利用QIcon应用了,QIcon("./image/right.png");这样资源图片就能出来了。
参考技术A 是指.exe文件的图标么?

如何在给定文件扩展名的情况下获取 Qt 图标(QIcon)

【中文标题】如何在给定文件扩展名的情况下获取 Qt 图标(QIcon)【英文标题】:How to get Qt icon (QIcon) given a file extension 【发布时间】:2011-01-06 17:52:34 【问题描述】:

我正在开发一个需要显示与不同文件类型相关联的图标的应用程序。 例如对于 .doc 扩展,我需要它能够显示 Microsoft Word 图标

问题:

如何使用 QT sdk 从系统获取 QIcon

谢谢。

【问题讨论】:

【参考方案1】:

使用QtGui.QFileIconProvider 类。

【讨论】:

只是一点性能提示。如果您需要经常提供这些图标,请创建一个 QFileIconProvider 的本地实例。 QFileIconProvider 的构造很重 看起来QFileIconProvider 的构建成本很高,因为缓存过去不是在多个实例之间共享的。但是,这似乎在Qt 5.8 中发生了变化。它现在使用例如缓存QWindowsTheme 在所有实例之间共享。【参考方案2】:

从 Qt5 开始,使用 QMimeDatabase:

QMimeDatabase mime_database;

QIcon icon_for_filename(const QString &filename)

  QIcon icon;
  QList<QMimeType> mime_types = mime_database.mimeTypesForFileName(filename);
  for (int i=0; i < mime_types.count() && icon.isNull(); i++)
    icon = QIcon::fromTheme(mime_types[i].iconName());

  if (icon.isNull())
    return QApplication::style()->standardIcon(QStyle::SP_FileIcon);
  else
    return icon;

【讨论】:

fromTheme 只是 linux,不是吗?【参考方案3】:

如果您没有特殊要求,QMimeDatabase 是您需要的更好选择。我建议您尝试@nitro2005 的回答。您仍然可以使用QFileIconProvider 手动完成这项工作。

如果您想手动完成这项工作,但由于某种原因不能使用QMimeDatabase,有一个适用于 Linux/X11 的解决方案。你可以使用QFileInfo(const QString &amp;file)来获取文件的后缀/扩展名(你传递给QFileInfo构造函数的QString不一定是存在路径),然后得到后缀的MIME类型形式,最后你可以使用 QIcon::fromTheme 获取 QIcon 并完成。

例如,下面的代码将检查文件的后缀是否为“.bin”,如果是,则给它一个来自系统主题的图标,MIME 类型为“application-x-executable”。事实上,它只是你自己维护一个 MIME 数据库。

QString fileName("example.bin");
QFileInfo fi(fileName);
if (fi.suffix().compare(QString("bin")) == 0) 
    item->setIcon(QIcon::fromTheme("application-x-executable",
                                    provider.icon(QFileIconProvider::File)));

要获取“MIME 数据库”的 MIME 类型字符串参考,请查看freedesktop icon naming spec。

【讨论】:

以上是关于VS2010怎么加载QT的QICON的主要内容,如果未能解决你的问题,请参考以下文章

VS2010打开项目提示未能正确加载解决方案中一个或多个项目,请问怎么回事? 要交课程设计,突然出现此问题

vs2010调试老是在为.加载符号,特别慢,谁能告诉我怎么回事

VS2010中安装Qt插件错误

VS2010中安装Qt插件错误

VS2010 调试 页面一直加载,急!!!

vs2013项目加载失败