QLabel загрузить изображение из файла - PullRequest
0 голосов
/ 29 января 2019

Я использую Qt Resource System для загрузки изображений.

Но файлы сбора ресурсов (.qrc) только 20 МБ

Поэтому я пытаюсь использовать QImage :: loadFromData для загрузки изображения для моего приложения виспользовать.

Но для файлов сбора ресурсов (.qrc) я использую

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

для загрузки изображения.

Как загрузить изображение с помощью QImage::loadFromData

Как использовать относительный путь для qrc?

И я не могу скомпилировать и обновить терминал.qrc.

Ответы [ 2 ]

0 голосов
/ 29 января 2019

обычно обычно файл 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 и скомпилировать их в код c, используя rcc

, тогда вы можете просто использовать этот адрес в любом из ваших кодов cpp, используя это:

":/images/dashboard_n.png"
0 голосов
/ 29 января 2019

Вот простой пример загрузки в QPixmap с помощью loadFromData. Вы можете загрузить в 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);
...