Qt qrc资源路径不起作用

时间:2013-06-14 07:30:02

标签: c++ qt qpixmap

我想在QLabel窗口小部件中显示图片。该图片位于./images/相对于resource.qrc文件的文件夹中,其内容如下:

<RCC>
    <qresource prefix="/images">
        <file>image.png</file>
    </qresource>
</RCC>

现在我想在QLabel

中显示图片
QPixmap pixmap( ":/images/image.png" );
label->setPixmap( pixmap );

这不起作用。处于调试模式pixmap = NULL时。我认为qrc路径是错误的。使用图像c:/images/...的绝对系统路径,它可以正常工作。有什么想法吗?

2 个答案:

答案 0 :(得分:9)

您指定的前缀将应用于应用内的资源路径。它不适用于文件的实际路径。正确的资源应该是:

<RCC>
    <qresource prefix="/images">
        <file>images/image.png</file>
    </qresource>
</RCC>

资源路径为:/images/images/image.png

您还可以在RCC文件中指定prefix="/"并使用://images/image.png资源路径。我认为这更方便。

答案 1 :(得分:5)

如果在资源文件中使用别名,则: -

<RCC>
<qresource prefix="/images">
    <file alias="image">images/image.png</file>
</qresource>
</RCC>

然后您可以像以前一样访问图像: -

  

“:/图像/ image.png”