[英]QLabel load image from file
我使用Qt资源系统加载图像。
但是资源收集文件(.qrc)仅20MB
所以我尝试使用QImage :: loadFromData加载图像供我的应用程序使用。
但是对于资源收集文件(.qrc),我使用
QImage image0(":/images/dashboard_n.png");
加载图像。
如何使用QImage::loadFromData
加载图像
如何为qrc使用相对路径?
而且我无法编译和更新terminal.qrc。
这是一个使用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);
通常,通常将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"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.