我按照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位)
所有设置均为默认(开箱即用),我没有更改任何设置。
resources.qrc
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>images/spreadsheet.ico</file>
</qresource>
</RCC>
也尝试了使用 <qresource prefix="/">
。
来自 applicaton.pro 文件。
RESOURCES += \
resources.qrc
OTHER_FILES += \
images/spreadsheet.ico
在相应的源文件中
QIcon(":/images/spreadsheet.ico")
我也按照 在Windows上部署应用程序 中所述尝试过。
QDir plugins(QCoreApplication::applicationDirPath()+"/plugins");
qDebug() << "Plugin directory" << plugins.absolutePath() << "found?" << plugins.exists();
app.addLibraryPath(plugins.absolutePath());
在插件目录中使用qico.dll。程序会打印插件目录已存在,但图标仍未显示。
我再重复一遍:它在Linux上可以运行。
ico
格式,那么你就有了答案。你应该使用QImageReader::supportedImageFormats()
函数列出支持的格式,并查看你的 Windows 机器上是否有ico
。 - mipimageformats
应该在应用程序文件夹中(因此,如果您的应用程序位于c:\myapp
中,则应该有c:\myapp\imageformats
文件夹而不是c:\myapp\plugins\imageformats
),您不需要设置任何内容。还要确保qico4.dll
和qicod4.dll
(如果您以调试模式构建)存在。 - mip