嵌入式JPG资源未在Qt应用程序中加载

dwj*_*dwj 7 qt embedded-resource

我有一个Qt应用程序,它有一些我想要显示的嵌入式JPG文件.当我在我的机器上编译并运行调试和发布版本时,一切都运行良好.当我将应用程序复制到拇指驱动器并从我的机器上运行它时,它工作正常.在拇指驱动器和另一个开发人员的机器上:好的.在第三个非开发人员的机器上的拇指驱动器上: 没有图像!

proj.pri
RESOURCES += ./proj.qrc

proj.qrc:
<RCC>
<qresource prefix="/myApp">
    <file>Gui/Resources/logo.jpg</file>
    <file>Gui/Resources/another_image.jpg</file>
</qresource>
</RCC>

main.cpp:
{
    ...
    QImage *logo  = new QImage( ":/myApp/Gui/Resources/logo.jpg" );
    QImage *image = new QImage( ":/myApp/Gui/Resources/another_image.jpg" );

    myClass *d1 = new myClass( "Some Text", 48, 30, logo );
    myClass *d2 = new myClass( "Some More Text", 48, 30, another_image );
    ...
}
Run Code Online (Sandbox Code Playgroud)

我已经确认通过注释.pri文件中的RESOURCES行将图像添加到可执行文件中.二进制文件的大小会随图像的大小加一点而下降; 当我运行应用程序时,图像不会出现.我取消对资源线的评论,一切都如上所述.

我在这里错过了什么?非开发人员机器上的DLL?一个

环境:

  • 赢得XP
  • Qt 4.6.1
  • Visual Studio 2008
  • Qt Creator 1.3.1

Eug*_*ene 11

它需要jpeg插件来加载图像.如果你安装了Qt,它们将在%QTDIR%\ plugins\imageformats中.

将qjpeg4.dll复制到您的拇指驱动器上的插件文件夹中.

root/app.exe
root/qt.conf
root/plugins/imageformats/qjpeg4.dll
Run Code Online (Sandbox Code Playgroud)

在qt.conf文件中设置插件目录的路径:

[Paths]
plugins=./plugins
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一下,将imageformats/qjpeg4.dll复制到root中(如上例所示),并省略了qt.conf和root/plugins. (2认同)