我正在尝试通过资源文件将图像插入到我的程序中,就像:
<RCC>
<qresource prefix="/">
<file>green.png</file>
<file>other files</file>
</qresource>
</RCC>
当我尝试使用
QImage
或 QPixmap
加载它时,例如:
QImage *green = new QImage(":/green.png");
if(green->isNull()) qDebug("null");
我总是看到那个
null
消息,表明我做错了什么。
一个解决方案可能是使用绝对路径,如:
<file>C:\\Users\\user\\Documents\\project\\green.png</file>
这当然有效,但我更喜欢使用资源文件来实现它。
如果您的
png
文件与项目的 .pro
、.qrc
和 .cpp
文件位于同一文件夹中,您的问题就会得到解决。
通常将所有图像放入特殊的子文件夹中很方便,例如Resources。你的
.qrc
文件看起来像这样:
<RCC>
<qresource prefix="/">
<file>Resources/green.png</file>
<file>Resources/other files</file>
</qresource>
</RCC>
你可以像这样在你的
.cpp
文件中使用它:
QImage *green = new QImage(":/Resources/green.png");
以下是如何将资源文件添加到项目中的步骤
.qrc
:
.qrc
文件后,按添加 -> 添加前缀 -> 根据需要更改前缀名称。mainwindow.cpp
文件并使用.qrc
文件中的图像,如下所示:ui->play->setIcon(QIcon(":/Playericons/icons8-pause-30.png"));
在我的例子中,图像文件夹被称为
Playericons
.
添加资源文件后记得运行qmake吗?