Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: mal от Июль 08, 2009, 22:25



Название: Экшены на тулбаре без картинок
Отправлено: mal от Июль 08, 2009, 22:25
Всем привет.

WinXP+SP3, VisualStudio 2005+SP1, Qt-4.5.2

Начал делать новый проект и зачем то запустил .exe не из под среды - увидел субж.
Из под среды, и debug и release - иконки на тулбаре главного окна есть. Запуск не из под среды - нет.
Однако если положить рядом с исполняемым файлом папку Resource - при запуске все экшны тулбара с иконками.
Причем в этом случае неважно, как прописано в создании экшна :
Код:
a_exit = new QAction(QIcon("Close.png"), tr("&Exit"), this);
//или
a_exit = new QAction(QIcon("Resource/Close.png"), tr("&Exit"), this);
иконка находиться.

В поисках лекарства нашел вот это http://www.prog.org.ru/topic_9405_0.html. Попробовал, создать средствами Qt .pro-файл. Прописал в него  RESOURCES   += Images.qrc, импортировал проект обратно в среду из pro-файла - не помогает. Игрался с префиксами qrc- файла как указано в ссылке - не помогает.

Ранее никогда с этим не морочился, и ресурсы за проектом не таскал, из чего делаю вывод, что ресурсы встраивались внутрь исполняемого файла. Собственно и в асистенте про то написано :
Цитировать
The resource file must be mentioned in the application.pro file so that qmake knows about it:

 RESOURCES     = application.qrc
qmake will produce make rules to generate a file called qrc_application.cpp that is linked into the application. This file contains all the data for the images and other resources as static C++ arrays of compressed binary data.

Проверил, есть ли такой объектник qrc_<имя приложения>. Есть - и в дебаге  и в релизе. Однако при запуске вне среды имеем субж.  ???
Подскажите куда-кинуться плиз. :-\


Название: Re: Экшены на тулбаре без картинок
Отправлено: lit-uriy от Июль 08, 2009, 22:40
Цитировать
a_exit = new QAction(QIcon("Close.png"), tr("&Exit"), this);
//или
a_exit = new QAction(QIcon("Resource/Close.png"), tr("&Exit"), this);
это ты не ресурсы используешь а сами файлы.

Чтобы обращатся к ресурсам нужно двоеточие перед путём писать:
Код:
a_exit = new QAction(QIcon(":/Close.png"), tr("&Exit"), this);


Название: Re: Экшены на тулбаре без картинок
Отправлено: mal от Июль 09, 2009, 08:29
to lit-uriy
помогло.
Только пришлось еще добавить префикс  - имя приложения в солюшене, который при открытии qrc средой покаывается
Т.е. :/<имя приложения>/Resource/icon.png
Так все работает.  Спасибо.