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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Экшены на тулбаре без картинок  (Прочитано 2943 раз)
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_<имя приложения>. Есть - и в дебаге  и в релизе. Однако при запуске вне среды имеем субж.  Непонимающий
Подскажите куда-кинуться плиз. В замешательстве
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Июль 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);
Записан

Юра.
mal
Гость
« Ответ #2 : Июль 09, 2009, 08:29 »

to lit-uriy
помогло.
Только пришлось еще добавить префикс  - имя приложения в солюшене, который при открытии qrc средой покаывается
Т.е. :/<имя приложения>/Resource/icon.png
Так все работает.  Спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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