从文件QLabel加载图片

问题描述 投票:0回答:2

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

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

所以,我尝试使用的QImage :: loadFromData载入图片为我的应用程序使用。

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

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

加载图像。

如何加载与QImage::loadFromData图像

如何使用相对路径QRC?

我不能编译和更新terminal.qrc。

c++ qt5 qimage qlabel
2个回答
1
投票

通常这是常见的把你的image.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"

1
投票

下面是一个简单的例子来加载使用loadFromData一个QPixmap的..你可以加载到一个QImage的方式相同,但你必须把它转换反正像素图将其加载到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);
© www.soinside.com 2019 - 2024. All rights reserved.