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

时间:2010-02-10 23:30:21

标签: 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 );
    ...
}

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

我在这里缺少什么?非开发人员机器上的DLL?一个

环境

  • Win XP
  • Qt 4.6.1
  • Visual Studio 2008
  • Qt Creator 1.3.1

2 个答案:

答案 0 :(得分:11)

需要jpeg插件才能加载图片。如果你安装了Qt,它们将在%QTDIR%\ plugins \ imageformats中。

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

root/app.exe
root/qt.conf
root/plugins/imageformats/qjpeg4.dll

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

[Paths]
plugins=./plugins

答案 1 :(得分:0)

虽然给出了最准确的答案already,而不是必须部署更多的dll和文件夹结构,我发现将图像转换为png更容易...没有图像格式dll等需要如果你使用pngs。