Russian Qt Forum

Qt => Общие вопросы => Тема начата: QCasper от Март 22, 2006, 16:10



Название: Картинка внутри exe или dll
Отправлено: QCasper от Март 22, 2006, 16:10
как запихнуть картинку в exe или еще лучше dll файл, т.е. чтобы явно она не валялась, и просматривать загрузив оттуда? Qt 4.1.1


Название: Картинка внутри exe или dll
Отправлено: Hordi от Март 22, 2006, 16:39
Собственный велосипед я когда-то делал так:
Имелись картинки xpm-типа. Места занимают в теле программы очень много. Я их паковал с помощью zlib,переводил в HEX и в таком виде запихивал в программу. При использовании распаковывал и обратно получал исходный массив (xpm).


Название: Картинка внутри exe или dll
Отправлено: Asaphus_Expansus от Март 22, 2006, 17:07
Штатный механизм - через qrc файл.


Название: Картинка внутри exe или dll
Отправлено: QCasper от Март 22, 2006, 21:22
Цитата: "Asaphus_Expansus"
Штатный механизм - через qrc файл.


а поподробнее процесс не опишете?


Название: Картинка внутри exe или dll
Отправлено: Steven_Orko от Март 22, 2006, 23:40
А поподробнее...
...есть такой топик в Assistant, называется The Qt Resource System. Когда вводишь слово "resource", этот заголовок появляется внизу.


Название: Картинка внутри exe или dll
Отправлено: Asaphus_Expansus от Март 23, 2006, 14:37
Цитата: "QCasper"
Цитата: "Asaphus_Expansus"
Штатный механизм - через qrc файл.


а поподробнее процесс не опишете?


В Qt4 реализован специальный File Engine, предоставляющий доступ к ресурсам упакованным в исполняемый код.

1. project.qrc

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>../Resources/image1.png</file>
</qresource>
</RCC>

2. project.pro

RESOURCES += project.qrc

3. main.cpp

QAction* act1 = new QAction();
act1->addFile(":/Resources/image1.png");

QIcon* ic1 = new QIcon(":/Resources/image1.png");

и так далее.


Название: Картинка внутри exe или dll
Отправлено: Bullka от Апрель 25, 2006, 12:29
А как быть в Qt 3.3.3?


Название: Картинка внутри exe или dll
Отправлено: Sergeich от Апрель 25, 2006, 12:45
Цитата: "Bullka"
А как быть в Qt 3.3.3?

В прошке:
  IMAGES += ./images/mycoolimage.png
В коде:
  QImage img = QImage::fromMimeSource( "mycoolimage.png" );