Добавление .png в sln
От: arfaa  
Дата: 29.05.20 14:24
Оценка:
Добрый день, использую Qt add in.Подскажите пожалуйста пошагово, как добавить ресурс(иконку) в проект, чтобы он был вшит в .exe файл?
Я использовал Project->Add new item->Qr resources->Add, там добавляю в окошке нужный файл, у меня создается файл Resource.qrc, а дальше не знаю что куда его прописывать , чтобы он вшивался в exe файл.
Re: Добавление .png в sln
От: SaZ  
Дата: 29.05.20 17:22
Оценка:
Здравствуйте, arfaa, Вы писали:

A>Добрый день, использую Qt add in.Подскажите пожалуйста пошагово, как добавить ресурс(иконку) в проект, чтобы он был вшит в .exe файл?

A>Я использовал Project->Add new item->Qr resources->Add, там добавляю в окошке нужный файл, у меня создается файл Resource.qrc, а дальше не знаю что куда его прописывать , чтобы он вшивался в exe файл.

Что вы понимаете под "вшить в exe файл"? Для чего и где вы планируете потом эту иконку использовать?

P.S. Я попрошу вас не дублировать сообщение во всех подряд разделах форума, это лишнее и нарушает правила.
Re: Добавление .png в sln
От: XOOIOOX  
Дата: 29.05.20 17:31
Оценка: +1
Здравствуйте, arfaa, Вы писали:

A>как добавить ресурс(иконку) в проект, чтобы он был вшит в .exe файл?


Ресурс .qrc с иконой затащить в проект.
Далее, например, в конструкторе класса окна:

QIcon icona(":/префикс_в_ресурсе/икона.png");
this->setWindowIcon(icona);
Re[2]: Добавление .png в sln
От: arfaa  
Дата: 29.05.20 18:25
Оценка:
Здравствуйте, XOOIOOX, Вы писали:

XOO>Здравствуйте, arfaa, Вы писали:


A>>как добавить ресурс(иконку) в проект, чтобы он был вшит в .exe файл?


XOO>Ресурс .qrc с иконой затащить в проект.

XOO>Далее, например, в конструкторе класса окна:

XOO>
XOO>QIcon icona(":/префикс_в_ресурсе/икона.png");
this->>setWindowIcon(icona);
XOO>



ну вот у меня при сборке , если нету папки src с файлом 1.png иконка подгружена не будет. Как сделать, чтобы иконка подгружалась без исходника самой иконки?
Re[3]: Добавление .png в sln
От: XOOIOOX  
Дата: 29.05.20 22:19
Оценка:
Здравствуйте, arfaa, Вы писали:

A>ну вот у меня при сборке , если нету папки src с файлом 1.png иконка подгружена не будет. Как сделать, чтобы иконка подгружалась без исходника самой иконки?


Ничего не понял.

Вот, по шагам. С картинками.

Создаем пустой проект:


Создаем qrc:


Бросаем его мышью в "обозреватель решений":


Открываем в редакторе qrc:


Добавляем картинку:


Пишем код:


Икона на месте:


Сpp-шник внедрен в проект:
Re[4]: Добавление .png в sln
От: arfaa  
Дата: 29.05.20 22:30
Оценка:
Здравствуйте, XOOIOOX, Вы писали:

XOO>Здравствуйте, arfaa, Вы писали:


A>>ну вот у меня при сборке , если нету папки src с файлом 1.png иконка подгружена не будет. Как сделать, чтобы иконка подгружалась без исходника самой иконки?


XOO>Ничего не понял.


XOO>Вот, по шагам. С картинками.


XOO>Создаем пустой проект:

XOO>[url=http://cdn-thumbs.imagevenue.com/3e/bf/6e/ME122Q5B_t.png]Image: ME122Q5B_t.png[/URL]

XOO>Создаем qrc:

XOO>[url=http://cdn-thumbs.imagevenue.com/9b/70/e4/ME122Q5C_t.png]Image: ME122Q5C_t.png[/URL]

XOO>Бросаем его мышью в "обозреватель решений":

XOO>[url=http://cdn-thumbs.imagevenue.com/6b/03/79/ME122Q56_t.png]Image: ME122Q56_t.png[/URL]

XOO>Открываем в редакторе qrc:

XOO>[url=http://cdn-thumbs.imagevenue.com/1b/ea/5f/ME122Q57_t.png]Image: ME122Q57_t.png[/URL]

XOO>Добавляем картинку:

XOO>[url=http://cdn-thumbs.imagevenue.com/95/b0/65/ME122Q58_t.png]Image: ME122Q58_t.png[/URL]

XOO>Пишем код:

XOO>[url=http://cdn-thumbs.imagevenue.com/34/61/b3/ME122Q59_t.png]Image: ME122Q59_t.png[/URL]

XOO>Икона на месте:

XOO>[url=http://cdn-thumbs.imagevenue.com/b8/39/18/ME122Q5A_t.png]Image: ME122Q5A_t.png[/URL]

XOO>Сpp-шник внедрен в проект:

XOO>[url=http://cdn-thumbs.imagevenue.com/d7/ad/62/ME122Q5J_t.png]Image: ME122Q5J_t.png[/URL]


Спасибо огромное за картинки, но смотри, у создаю все так же, у меня такой же файл qrc,но что мне с ним дальше делать, куда его прописывать?Если я запускаю exe файл из отдельной папки, то ресурс не грузится.p.s. у меня qrc_cpp нет такого файла
Отредактировано 29.05.2020 22:40 arfaa . Предыдущая версия .
Re[5]: Добавление .png в sln
От: SaZ  
Дата: 30.05.20 09:44
Оценка:
Здравствуйте, arfaa, Вы писали:


A> Спасибо огромное за картинки, но смотри, у создаю все так же, у меня такой же файл qrc,но что мне с ним дальше делать, куда его прописывать?Если я запускаю exe файл из отдельной папки, то ресурс не грузится.p.s. у меня qrc_cpp нет такого файла#


Так может вы всё-таки напишите, что именно вы делаете? Пример кода / ссылка на гитхаб и т.п. Телепатия не всегда срабатывает.
Re[6]: Добавление .png в sln
От: arfaa  
Дата: 30.05.20 09:51
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, arfaa, Вы писали:



A>> Спасибо огромное за картинки, но смотри, у создаю все так же, у меня такой же файл qrc,но что мне с ним дальше делать, куда его прописывать?Если я запускаю exe файл из отдельной папки, то ресурс не грузится.p.s. у меня qrc_cpp нет такого файла#


SaZ>Так может вы всё-таки напишите, что именно вы делаете? Пример кода / ссылка на гитхаб и т.п. Телепатия не всегда срабатывает.

Я использовал в sln Visual Studio следующие шаги: Project->Add new item->Qr resources->Add,в появившемся окошке добавляю нужный файл, у меня создается файл Resource.qrc, который добавляется в проект.
Пример кода такой же, как и уже писали выше:
QIcon icona(":/src/resources/1.png");

вот если папка src/resources/1.png лежит рядом с итоговым экзешником, то ресурсы грузятся, если я создам чисто новую папку, в которую кину только exe файл и необходимые библиотеки, то иконка не грузится, пока я не подкину папку src/resources/1.png, а я хочу, чтобы у меня иконка грузилась (ресурсы вшивались в сам экзешник) самостоятельно
Re[7]: Добавление .png в sln
От: Conductor СССР  
Дата: 01.06.20 04:14
Оценка:
Здравствуйте, arfaa, Вы писали:

A>>> Спасибо огромное за картинки, но смотри, у создаю все так же, у меня такой же файл qrc,но что мне с ним дальше делать, куда его прописывать?Если я запускаю exe файл из отдельной папки, то ресурс не грузится.p.s. у меня qrc_cpp нет такого файла#


SaZ>>Так может вы всё-таки напишите, что именно вы делаете? Пример кода / ссылка на гитхаб и т.п. Телепатия не всегда срабатывает.

A>Я использовал в sln Visual Studio следующие шаги: Project->Add new item->Qr resources->Add,в появившемся окошке добавляю нужный файл, у меня создается файл Resource.qrc, который добавляется в проект.

У тебя скорее всего для Resource.qrc custom build не прописался, раз "у меня qrc_cpp нет такого файла". В Generated Files точно нет?
Попробуй сначала по тупому: удали из проекта файл Resource.qrc (но не сам файл — Remove, но не Delete), а потом добавь его через Add->Existing Item...
Re[8]: Добавление .png в sln
От: arfaa  
Дата: 01.06.20 11:17
Оценка:
Здравствуйте, Conductor, Вы писали:

C>Здравствуйте, arfaa, Вы писали:


A>>>> Спасибо огромное за картинки, но смотри, у создаю все так же, у меня такой же файл qrc,но что мне с ним дальше делать, куда его прописывать?Если я запускаю exe файл из отдельной папки, то ресурс не грузится.p.s. у меня qrc_cpp нет такого файла#


SaZ>>>Так может вы всё-таки напишите, что именно вы делаете? Пример кода / ссылка на гитхаб и т.п. Телепатия не всегда срабатывает.

A>>Я использовал в sln Visual Studio следующие шаги: Project->Add new item->Qr resources->Add,в появившемся окошке добавляю нужный файл, у меня создается файл Resource.qrc, который добавляется в проект.

C>У тебя скорее всего для Resource.qrc custom build не прописался, раз "у меня qrc_cpp нет такого файла". В Generated Files точно нет?

C>Попробуй сначала по тупому: удали из проекта файл Resource.qrc (но не сам файл — Remove, но не Delete), а потом добавь его через Add->Existing Item...

Спасибо, что не оставляете без ответа! Пробовал, как вы сказали, все равно qrc_cpp не создается, может быть вы подскажите что прописать в custom build? Просто проект достался мне в наследство и все файлы, типо ui форм и моделей, я прописываю вручную в проектном файле, по мимо того, что добавляю их в проект в виде файло, иначе ничего не билдится и не видит их как раз.
Re[9]: Добавление .png в sln
От: Conductor СССР  
Дата: 01.06.20 14:38
Оценка:
Здравствуйте, arfaa, Вы писали:

C>>У тебя скорее всего для Resource.qrc custom build не прописался, раз "у меня qrc_cpp нет такого файла". В Generated Files точно нет?

C>>Попробуй сначала по тупому: удали из проекта файл Resource.qrc (но не сам файл — Remove, но не Delete), а потом добавь его через Add->Existing Item...

A>Спасибо, что не оставляете без ответа! Пробовал, как вы сказали, все равно qrc_cpp не создается, может быть вы подскажите что прописать в custom build? Просто проект достался мне в наследство и все файлы, типо ui форм и моделей, я прописываю вручную в проектном файле, по мимо того, что добавляю их в проект в виде файло, иначе ничего не билдится и не видит их как раз.


Да подсказать конкретику не сложно. Только я попробовал бы разобраться в первую очередь, почему не работают штатные механизмы плагина студии (создать новый Qt-проект, и, если там работает, — посмотреть отличия). А так — пожалуйста:

Command Line: "$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp
Description: Rcc%27ing %(Identity)...
Outputs: .\GeneratedFiles\qrc_%(Filename).cpp;%(Outputs)
Additional Dependencies: %(FullPath);.\AppIcon.ico;%(AdditionalInputs)

Обрати внимание, что: 1. в Additional Dependencies указан путь к иконке; 2. сгенеренный файл (.\GeneratedFiles\qrc_%(Filename).cpp) нужно будет добавить в проект.

Но, повторяю, плагин это должен делать сам.
Re[10]: Добавление .png в sln
От: XOOIOOX  
Дата: 01.06.20 15:34
Оценка:
Здравствуйте, Conductor, Вы писали:

C>Но, повторяю, плагин это должен делать сам.


Вангую, что плагин, в данном случае, явно не последней версии и студия, похоже, тоже.
Это раньше были .\GeneratedFiles и прочий мусор в корневой проекта. Сейчас все в директории сборки генерится и выглядит иначе:



Вообще, лучше создать проект с нуля и перетащить туда все из старого.
Re[11]: Добавление .png в sln
От: Conductor СССР  
Дата: 01.06.20 16:05
Оценка:
Здравствуйте, XOOIOOX, Вы писали:

XOO>Здравствуйте, Conductor, Вы писали:


C>>Но, повторяю, плагин это должен делать сам.


XOO>Вангую, что плагин, в данном случае, явно не последней версии и студия, похоже, тоже.

XOO>Это раньше были .\GeneratedFiles и прочий мусор в корневой проекта. Сейчас все в директории сборки генерится и выглядит иначе:

Правильно вангуешь. У нас есть и под 2015, есть и под 2017. А вот 2019 нигде пока нет. Ну, не все же шериданы, — так и живем с говном мамонта (и, вообщем, нормально живем, не жалуемся). Кстати, неизвестно, что у автора топика. И что-то мне подсказывает, что у него не самое последнее-распоследнее...

XOO>Вообще, лучше создать проект с нуля и перетащить туда все из старого.


Оно, с одной стороны, конечно так, но с другой: 1. зависит от размера и сложности проекта; 2. поиск и устранение неисправности часто позволяет более глубоко изучить предмет.
Re[12]: Добавление .png в sln
От: XOOIOOX  
Дата: 01.06.20 16:33
Оценка:
Здравствуйте, Conductor, Вы писали:

C>У нас есть и под 2015, есть и под 2017. А вот 2019 нигде пока нет.


И на этот случай есть вариант: https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2015

Works with
Visual Studio 2015

Version 2.5.1
Released on 10.11.2016, 17:31:01
Last updated 19.05.2020, 12:26:05


C>Ну, не все же шериданы, — так и живем с говном мамонта (и, вообщем, нормально живем, не жалуемся).


Все же, на последней версии стало полегче, на мой взгляд. Раньше то одно отваливалось, то другое.

Re[13]: Добавление .png в sln
От: Conductor СССР  
Дата: 01.06.20 19:17
Оценка:
Здравствуйте, XOOIOOX, Вы писали:

XOO>Здравствуйте, Conductor, Вы писали:


C>>У нас есть и под 2015, есть и под 2017. А вот 2019 нигде пока нет.


XOO>И на этот случай есть вариант: https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2015


Спасибо, конечно, только оно не работает ни хрена. Вот сейчас специально на тестовой машине попробовал установить и создать простой проект:
1. В мастере (настройки проекта): combobox в списке текущий выбор — белый шрифт на белом фоне. Ну это ладно, мелочи.
2. Ставим галку "Add default application icon", жмем Finish — "Could not find file директория проекта\gui.ico", и проект не создается — кошмар, катастрофа, иконку не смогли найти, которую сами же и должны были скопировать, это конечно повод вообще не создавать проект. В текущем рабочем плагине с этой версией Qt почему-то работает нормально. Ладно, создадим без иконки, раз "не шмогла".
3. Пытаемся собрать... И что видим:

1>C:\Users\Conductor\AppData\Local\QtMsBuild\qt_vars.targets(312,5): error MSB3758: An error has occurred during compilation. c:\Users\Conductor\AppData\Local\Temp\jxtm5zpt.0.cs(103,26) : error CS1061: 'System.Collections.Generic.IEnumerable<string>' does not contain a definition for 'ToHashSet' and no extension method 'ToHashSet' accepting a first argument of type 'System.Collections.Generic.IEnumerable<string>' could be found (are you missing a using directive or an assembly reference?)


И ничего так, что Enumerable.ToHashSet — с .NET Framework 4.8, 4.7.2, а в 2015 последняя версия — 4.7?
И вот даже разбираться с этим говном не хочу. Это называется "сделали — жрите, что дают". Хотя понятно, что можно пойти и закомментарить в qt.targets <Import Project="qt_vars.targets"/>. Только на хрена?
Старый плагин QtPackage 5 лет прекрасно работает и никаких нареканий не вызывал, за исключением $(QTDIR), но это наша специфика и к автору — никаких претензий.

XOO>Все же, на последней версии стало полегче, на мой взгляд. Раньше то одно отваливалось, то другое.


Ну, вообщем, с учетом вышеизложенного, — спорный момент.
Re[14]: Добавление .png в sln
От: XOOIOOX  
Дата: 01.06.20 19:56
Оценка:
Здравствуйте, Conductor, Вы писали:

C>Спасибо, конечно, только оно не работает ни хрена.


Честно сказать, я не скрещивал последний плагин в 2015-й Студией. Видимо, действительно сделали "на отвяжись". Будем иметь в виду, если что.
С 2019-то все хорошо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.