【问题标题】:Qt qrc resource path doesn't workQt qrc资源路径不起作用
【发布时间】:2013-06-10 19:07:08
【问题描述】:

我想在 QLabel 小部件中显示图像。该图像位于相对于resource.qrc 文件的文件夹./images/ 中,包含如下:

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

现在我想在QLabel 中显示图像:

QPixmap pixmap( ":/images/image.png" );
label->setPixmap( pixmap );

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

【问题讨论】:

  • 你的资源初始化了吗?
  • 我想是的。在我的 .pro 文件中,它被称为“RESOURCES = resource.qrc”
  • 你需要类似 'Q_INIT_RESOURCE(resources);'在你的程序中

标签: c++ qt qpixmap


【解决方案1】:

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

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

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

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

【讨论】:

  • 好的,一切都很好。我需要在 .pro 文件更改后执行 qMake。你的描述完全正确。谢谢
  • QMake 并没有完全为我做到这一点,但重新启动 QtCreator 做到了。
【解决方案2】:

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

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

然后你就可以访问你的图像了:-

":/images/image.png"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 2014-07-13
    • 2012-12-13
    • 2019-02-20
    • 1970-01-01
    相关资源
    最近更新 更多