Qt中的资源问题

时间:2013-07-24 20:10:33

标签: qt resources

我创建了一个“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>

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

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

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

2 个答案:

答案 0 :(得分:1)

您必须使用qrc作为Qt中任何基于资源的路径的前缀:

imageObject.load("qrc:/pictures/cards/2_of_spades.png");

答案 1 :(得分:0)

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

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

如果您正在使用视觉工作室并拥有Qt Visual Studios插件,那么当您将qrc文件添加到项目时,这一切都应该为您处理。我说'应该',因为偶尔它不会起作用。如果你正在使用VS和插件,那么尝试从项目中删除qrc文件并重新添加它。

如果你正在使用QMake,那么你的pri文件应该包含一个“RESOURCES”部分,你需要列出你的qrc文件:

RESOURCES + = yourqrcfile.qrc

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

我希望有所帮助。