我想在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/...
的绝对系统路径,它可以正常工作。有什么想法吗?
答案 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”