Qt无法加载JPG文件,只能加载PNG文件。

5

我和我的同事在Windows 7 64位版本,使用Visual Studio 2008的同一项目上工作。

他们可以使用QPixmap和样式表加载JPG并正常工作,但对于我来说,我只能使用PNG格式,其他格式完全不能用。

我尝试更改环境变量中的路径,但我只看到一个Qt路径(bin),没有关于插件的信息......就像我在文档中读到的:

"默认情况下,Qt可以读取以下格式: 格式 描述 BMP Windows位图 GIF 图形交换格式(可选) JPG 联合图像专家组 JPEG 联合图像专家组 MNG 多重图像网络图形 PNG 可移植网络图形 PBM 可移植位图 PGM 可移植灰度图 (...)"

我想知道"可选"是什么意思?


当我写这篇文章时,帮助文档中没有显示任何内容。对此我深感抱歉。GIF是否与JPEG有关呢?那么,我需要安装某种扩展程序来为Qt添加jpeg支持吗?因为除了Bin之外,我的路径上没有任何QT dirs。所以路径修复无法起作用,而imageformats/文件夹也不是我想要的。 - Darkgaze
此外,我的问题不会发生在调试和发布两种模式下。 - Darkgaze
2
你需要在二进制文件旁边拥有一个名为“imageformats”的文件夹,并放置相关的Qt DLL。 - CadentOrange
1
相关,附有良好建议:https://dev59.com/KlrUa4cB1Zd3GeqPkoVR - handle
1个回答

10
您的可执行文件缺少jpg插件。 "Optional" 表示,如果您的可执行文件找不到插件(dlls),它将启动,但不会加载这些图像格式。 这与许多qt功能相同(例如:slqdrivers)。
您将在C:\ Qt \ 4.8.4 \ plugins中找到文件夹“imageformats”(替换您的安装目录和版本),将其复制到可执行路径并且它将显示jpg。
很可能您的同事的某些环境变量与你的有所不同。
谨慎处理Qt插件和应用程序的分发。

我有一个文件夹,里面包含所有带有jpeg和gif库的dll。C:\ qt-4.7.3 \ plugins \ imageformats ...但你告诉我要将dll复制到我的debug和release文件夹中? - Darkgaze
1
将文件夹“imageformats”复制到可执行文件夹中。例如:C:\MyApp\MyExe.exe,C:\MyApp\imageformats。或者您也可以设置一些环境变量。请参阅http://doc.qt.digia.com/stable/deployment-plugins.html了解详细信息。 - louissmr
为什么我的其他同事不需要这个? - Darkgaze
你看了链接吗?所有的都在那里。无论如何,如果他们想要将应用程序部署到没有安装Qt的任何人,他们都需要复制这个文件夹。 - louissmr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接