来自资源文件的 Qt 图像

Qt Image from resource file

我正在尝试通过资源文件将图像插入到我的程序中,例如:

<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",

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

如果您的 png 文件与项目的 .pro、.qrc 和 .cpp 文件位于同一文件夹中,所有这些都将起作用。

通常将所有图片放入特殊的子文件夹Resources中会很方便,例如。然后在 .qrc 中,该行将如下所示:

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

并且在 .cpp 文件中:

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

添加资源文件后记得运行qmake吗?

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

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

    • 在我的例子中,图标文件夹是 Playericons
ui->play->setIcon(QIcon(":/Playericons/icons8-pause-30.png"));