【发布时间】:2012-12-03 05:12:02
【问题描述】:
我按照The Qt Resource System 指南进行操作,.ico 图标出现在 Linux 上。
当我尝试从 Qt Creator 运行应用程序时,图标未显示在 Windows 上。
我怀疑基于Qt/C++: Icons not showing up when program is run under windows O.S 的插件问题,但我无法从指南How to Create Qt Plugins 中弄清楚该怎么做。
是插件问题还是 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 位)
Everything 是默认设置(开箱即用),我没有弄乱设置。
resources.qrc
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>images/spreadsheet.ico</file>
</qresource>
</RCC>
还尝试使用<qresource prefix="/">。
来自 application.pro
RESOURCES += \
resources.qrc
OTHER_FILES += \
images/spreadsheet.ico
在对应的源文件
QIcon(":/images/spreadsheet.ico")
我也试过Deploying an Application on Windows写的
QDir plugins(QCoreApplication::applicationDirPath()+"/plugins");
qDebug() << "Plugin directory" << plugins.absolutePath() << "found?" << plugins.exists();
app.addLibraryPath(plugins.absolutePath());
使用插件目录中的 qico.dll。它应用程序打印插件目录存在,但图标仍然不显示。
我再说一遍:它适用于 Linux。
【问题讨论】:
-
“不显示”是指它们没有出现在您的应用程序中,还是它们没有在磁盘上生成?
-
@IanAtkin 他们没有出现在我的应用程序中。
-
@Ali 这很关键。因为如果 QIcon 不支持
ico格式,那你就有答案了。您应该使用QImageReader::supportedImageFormats ()函数列出支持的格式,并查看您的Windows 机器上是否存在ico。 -
@Ali 首先尝试列出格式。你确定你有正确路径中的插件吗?
imageformats应该在应用程序文件夹中(所以如果你的应用程序在c:\myapp你应该有c:\myapp\imageformats文件夹而不是c:\myapp\plugins\imageformats)并且你不必设置任何东西。还要确保qico4.dll和qicod4.dll(如果您在调试模式下构建)存在。 -
@doc 请为未来的谷歌访问者写下这个讨论,我愿意接受它作为答案。
标签: qt plugins icons toolbar ico