使用Qt显示JPG图像不适用于发布可执行文件



我在用qt显示jpg图像时遇到了一个烦人的问题。我在Windows 7中使用Visual Studio 2008进行开发,并使用Qt版本4.8.2。我现在将通过Qt提供的"collidingmices"示例(../examples/graphicsview/coldingmices)来描述我的问题。

我可以通过Visual Studio IDE或通过Visual Studio命令提示符使用构建此示例。在这个示例中,jpg被用作背景,并且在我执行调试可执行文件时正确显示。但在发布版本中,没有显示此背景jpg。

我已经意识到,Qt使用插件来加载/显示不同的图像。因此,我将Qt插件文件夹的内容复制到应用程序目录中(collidingmice.exe所在的位置)。不幸的是,这并不能解决问题。

因此,我认为Qt构建和jpeg库一定有问题。因此,我通过在Visual Studio命令提示符中执行以下命令来重新配置Qt:

nmake distclean
configure -debug-and-release -opensource -platform win32-msvc2008 -qt-libjpeg -no-webkit
nmake

之后对示例进行了重建,但再次没有显示jpg图像。我不确定问题是什么,因为它在调试构建和发布中都有效,我认为我只需要交付所需的插件DLL。但显然我是不对的。

我希望任何人都能帮助我,或者能给我一些问题所在的提示。谢谢!

因此,我将Qt插件文件夹的内容复制到应用程序目录(collidingmice.exe所在的位置)。

您需要将插件放入"imageformats"子目录,例如

bin
├── collidingmice.exe
└── imageformats
├── qjpeg4.dll
├ ...

另请参阅http://www.qtcentre.org/threads/46927-Location-of-imageformats-directory


原来OP已经相应地设置了目录结构。根本原因是加载了错误的QtGui4.dll。这可以通过将DLL直接复制到应用程序目录中或通过更改PATH环境变量中的路径顺序来修复",使您的Qt-bin目录位于包含QtGui4.DLL的所有其他路径之前。">

在任何情况下,Process Monitor都是追踪此类问题的好工具。

最新更新