来自资源文件的Qt图像

时间:2015-07-14 12:02:51

标签: qt resources qimage

我试图通过资源文件将图像插入我的程序,如:

<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");

我总是看到空消息,表明我做错了什么。一种解决方案可能是使用绝对路径,如

"C:\\Users\\user\\Documents\\project\\green.png",

当然有效,但我更喜欢使用资源文件来实现它。你能给我一些建议吗?

3 个答案:

答案 0 :(得分:4)

如果您的png文件与项目的.pro,.qrc和.cpp文件位于同一文件夹中,则所有这些都可以。

通常,将所有图像放到特殊的子文件夹资源中很方便。然后在.qrc中,该行将如下所示:

<file>Resources/green.png</file>

在.cpp文件中:

QImage *green = new QImage(":/Resources/green.png");

答案 1 :(得分:1)

您是否记得在添加资源文件后运行qmake?

答案 2 :(得分:0)

首先,您需要创建一个.qrc文件并向其中添加图片文件夹

  1. (图像文件夹必须包含在项目文件夹中)
  2. 右键单击项目文件
  3. 添加新
  4. Qt
  5. Qt资源文件按选择并执行其他步骤
  6. 打开.qrc文件后,必须按添加>添加前缀>如果需要,请更改前缀名称
  7. 再次添加>添加文件>并选择您的图片
  8. 然后转到mainwindow.cpp(在我的项目中)文件,并按以下代码调用图像

    • 在我的情况下,图标文件夹为Playericons
ui->play->setIcon(QIcon(":/Playericons/icons8-pause-30.png"));