Russian Qt Forum
Ноябрь 23, 2024, 15:11 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ресурсы в .exe файле, не хотят добавляться  (Прочитано 4135 раз)
UndeadDragon
Гость
« : Сентябрь 26, 2012, 02:52 »

Привет, товарищи.
В общем очень долго гуглил сегодня, практически весь вечер потратил. Не получается разобраться с ресурсами.
Задача элементарная, держать иконки в .exe файле, не хочется рядом кидать картинки и таскать их за программой.
Но эти самые ресурсы упорно не хотят никуда встраиваться (судя по весу итогового .exe-файла), а если и встраиваются, то не отображаются на других компьютерах.
Я перепробовал почти все, что смог найти в поисковых системах, и ничего не помогло.
Итак, конкретнее.
Есть код:
Код:
#include <QtGui>
#include "nums_qt_gui.h"

int main(int argc, char *argv[])
{
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Windows-1251"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("Windows-1251"));
QApplication::setStyle("plastique");
QApplication a(argc, argv);
Nums_Qt_Gui *numsGui=new Nums_Qt_Gui;
numsGui->setWindowIcon(QIcon(":/IconWillBe/Resources/math_number.jpg"));
numsGui->setWindowTitle("Технологии программирования, Лаб. 2");
numsGui->show();
return a.exec();
}

В ресурсах тестируемая иконка прописана:

Код:
<RCC>
    <qresource prefix="/IconWillBe">
        <file>Resources/math_number.jpg</file>
    </qresource>
</RCC>

Работаю из под MSVS, поэтому все собирается автоматически, но все равно пробовал собирать через qmake, та же ерунда.

Кинуть в папку с программой qjpegd4.dll, отвечающий за обработку .jpg я уже пробовал (.dll вообще все какие можно пробовал).

Далее, пробовал собрать ресурсы (в данном случае иконку) в бинарный файл .rcc и добавить в код
Код:
QResource::registerResource("iconwillbe.rcc");
в соотстветствии с руководством.

В итоге что. У меня все работает нормально:


Скидываю на второй компьютер с той же ОС:


Буду благодарен за помощь, всем заранее лучи добра.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Сентябрь 26, 2012, 06:03 »

Кинуть в папку с программой qjpegd4.dll, отвечающий за обработку .jpg я уже пробовал (.dll вообще все какие можно пробовал).
Надо не в папку, а в подпапку imageformats.
Ну или иконки в png. Улыбающийся
Ну и добавлять лучше через *.qrc и не мудрствовать лукаво.
Записан
Bepec
Гость
« Ответ #2 : Сентябрь 26, 2012, 06:56 »

Чуть поясню:

Qt обрабатывает форматы jpeg/ico/mng/tiff/gif/svg c помощью плагинов (с именами аля qjpeg4.dll).

Т.е. чтобы картинки показывались необходимо в папку с программой создать папку "imageformats" и туда закинуть необходимые тебе плагины (qjpeg4.dll) из папки
"Qt/4.7.2(версия Qt, у тебя может быть другая)/plugins/imageformats"

И тогда всё у тебя заработает Веселый

Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Сентябрь 26, 2012, 07:39 »

А ещё лучше держать все иконки в PNG.

Ups, LisandreL уже советовал)
« Последнее редактирование: Сентябрь 26, 2012, 07:42 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
UndeadDragon
Гость
« Ответ #4 : Сентябрь 26, 2012, 13:59 »

Спасибо большое, парни.
Вариант с созданием папки imageformats помог.
Хитрый нюанс, почему же его в документации нету (может я пропустил).
В любом случае все ок, благодарствую.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.098 секунд. Запросов: 23.