1

我创建了一个“qrc”资源文件

<RCC>
<qresource prefix="/pictures">
    <file>cards/2_of_clubs.png</file>
    <file>cards/2_of_diamonds.png</file>
    <file>cards/2_of_hearts.png</file>
    <file>cards/2_of_spades.png</file>
</qresource>
</RCC>

这些文件都是名为“卡片”的地图中的所有图片。我他们创建了一个 imageObject 并尝试从资源中加载其中一张图片,但它没有加载。(如果我写了它的直接路径就可以了)

QImage imageObject;
imageObject.load(":/pictures/cards/2_of_spades.png");
ui->label->setPixmap(QPixmap::fromImage(imageObject));

我显然做错了什么。请帮忙 :)

4

2 回答 2

1

您必须使用qrc以下任何基于资源的路径的前缀Qt

imageObject.load("qrc:/pictures/cards/2_of_spades.png");
于 2013-07-25T04:54:02.917 回答
0

我看不出您的代码或 qrc 文件有任何问题。所以我的想法是,您的配置可能没有设置为处理文件。

创建 qrc 文件后,您必须确保在您的文件上运行“rcc.exe”。这将生成一个 qrc_yourqrcfile.cpp 文件,该文件必须包含在您的项目中。

如果您使用的是 Visual Studio 并拥有 Qt Visual Studios 插件,那么当您将 qrc 文件添加到项目时,这一切都应该为您处理。我说“应该”,因为有时它不太管用。如果您正在使用 VS 和插件,请尝试从项目中删除 qrc 文件并重新添加它。

如果您使用的是 QMake,那么您的 pri 文件应该包含一个“资源”部分,您需要在其中列出您的 qrc 文件,例如:

资源 += yourqrcfile.qrc

然后 QMake 将自动处理所有 rcc'ing。

我希望这会有所帮助。

于 2013-07-24T21:11:27.390 回答