4

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

我可以通过 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。但显然我是不对的。

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

4

1 回答 1

7

因此,我将 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 的所有其他路径之前”来解决。

在任何情况下,进程监视器都是追踪此类问题的好工具。

于 2012-10-09T12:50:34.637 回答