QLabel 从文件加载图像



我使用Qt资源系统来加载图像。

但资源集合文件 (.qrc) 只有 20MB

所以我尝试使用 QImage::loadFromData 来加载图像供我的应用程序使用。

但是对于资源集合文件(.qrc),我使用

QImage image0(":/images/dashboard_n.png");

以加载图像 。

如何使用QImage::loadFromData加载图像

如何使用 qrc 的相对路径?

而且我无法编译和更新终端.qrc。

通常将图像.png文件放在 *.qrc 所在的目录中

,例如:
${Project_Resource_Directory}/images/dashboard_n.png

.qrc 文件将放在这里:

${Project_Resource_Directory}/resources.qrc

您的 .qrc 文件应如下所示:

<RCC>
     <qresource prefix="/">
         <file>images/dashboard_n.png</file>
     </qresource>
</RCC>

将此代码放在您的 .pro 文件中:

RESOURCES += ${Project_Resource_Directory}/resources.qrc

替换项目结构中的资源目录名称而不是${Project_Resource_Directory},以便Qt可以检测到您的*.qrc文件并使用RCC将它们编译为C代码

然后,您可以使用以下内容在任何CPP代码中使用此地址:

":/images/dashboard_n.png"

下面是一个简单的示例,使用 loadFromData 加载到 QPixmap。 您可以以相同的方式加载到 qimage,但无论如何都必须将其转换为 pixmap 才能将其加载到 qlabel

 QByteArray *temp = new QByteArray();
 QFile *file = new QFile("image.png");
 file->open(QIODevice::ReadOnly);
 *temp = file->readAll();
 QPixmap *pix = new QPixmap();
 pix->loadFromData(*temp);
 label->setPixmap(*pix);

相关内容

  • 没有找到相关文章

最新更新