.ico图标未显示在Windows上

Ali*_*Ali 9 plugins icons qt toolbar ico

我遵循了Qt资源系统指南,并且.ico图标出现在Linux上.

当我尝试从Qt Creator运行应用程序时,图标不会显示在Windows上.

怀疑基于Qt/C++的插件问题:在Windows操作系统下运行程序时图标没有显示但我没有弄清楚如何创建Qt插件指南.

它是插件问题还是为什么不在Windows上显示图标?

如果是插件问题:如何告诉我的应用程序在哪里可以找到qico.dll?


环境细节:

适用于:Kubuntu 12.04 LTS,Qt Creator 2.4.1和Qt 4.7.4(64位)

失败:Windows XP SP2 32位,Qt Creator 2.4.1和Qt 4.7.4(32位)

Everyting是默认的(开箱即用),我没有弄乱设置.

resources.qrc

<!DOCTYPE RCC><RCC version="1.0">
    <qresource>
        <file>images/spreadsheet.ico</file>
    </qresource>
</RCC>
Run Code Online (Sandbox Code Playgroud)

也尝试过<qresource prefix="/">.

来自applicaton.pro

RESOURCES += \
    resources.qrc

OTHER_FILES += \
    images/spreadsheet.ico
Run Code Online (Sandbox Code Playgroud)

在相应的源文件中

QIcon(":/images/spreadsheet.ico")
Run Code Online (Sandbox Code Playgroud)

我也尝试过在Windows上部署应用程序

QDir plugins(QCoreApplication::applicationDirPath()+"/plugins");

qDebug() << "Plugin directory" << plugins.absolutePath() << "found?" << plugins.exists();

app.addLibraryPath(plugins.absolutePath());
Run Code Online (Sandbox Code Playgroud)

使用插件目录中的qico.dll.它应用程序打印出plugins目录,但图标仍未显示.

我再说一遍:它适用于Linux.

doc*_*doc 15

对于未来的谷歌访问者:你可能会在这个问题下阅读评论,因为这就是这个答案诞生的地方.

所以问题是默认情况下ico不支持格式QIcon,你需要一个插件.在这种情况下QImageReader::supportedImageFormats(),列出QIcon支持的格式的函数可能会有所帮助.

如果您的格式不受支持,您可以尝试将imageformats文件夹从Qt的plugins目录复制到您的可执行文件所在的目录中.如果您的应用程序位于c:\myapp文件夹中,则应该有c:\myapp\imageformats文件夹(不是c:\myapp\plugins\imageformats).否则,您必须使用设置路径QCoreApplication::addLibraryPath.

还要确保qico4.dllqicod4.dll(如果你在调试模式下构建)存在.