Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Qt] Файл ресурсов и включение иконок, Не понимаю как же правильно делать 
V
    Опции темы
null56
Дата 15.7.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



Собственно не понимаю логики, почему в одном случае работает, в другом нет... приведу пример каталогов
В корне: Файлы *.cpp, *.h,  *.qrc, папка res
в папке res: 1.png
Файл qrc
Код

<RCC>
    <qresource prefix="/res">
     <file>1.png</file>
    </qresource>
</RCC>

Файл cpp
Код

setWindowIcon(QIcon(":/res/1.png"));

Результат: не работает
Код

RCC: Error in 'admin_db.qrc': Cannot find file '1.png'


Второй вариант
Файл ресурсов
Код

<RCC>
    <qresource>
     <file>res/1.png</file>
    </qresource>
</RCC>

Результат: всё работает, иконка видна

О параметр xml "prefix" узнал из исходников видалии, разработчики активно его там используют, у меня не пашит... 
Вопрос: почему? что я делаю не так?
ЗЫ: на префикс вообще никакой реакции, как бы я его не писал, он вообще поддерживается?
PM MAIL   Вверх
SABROG
Дата 15.7.2009, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Отчего же. Префикс и директория на диске разные вещи. Если ты хочешь избавится от лишнего пути типа :/resources/images/network/hub.png в пользу :/hub.png, то тебе нужно поместить .qrc файл в папку resources/images/network, иначе rcc не найдет файлы и прописать этот путь в .pro файле.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
null56
Дата 16.7.2009, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



не совсем понял....
короче, как сделано в видалии
1) Файл qrc лежит в папке res и вот кусок его содержимого
Цитата

    <qresource prefix="/images">
        <file>16x16/system-run.png</file>

2) В коде всё равно полный путь, относительно папки res
Код

#define IMG_CONTROL_PANEL  ":/images/16x16/system-run.png"

Так префикс нужен для файла qrc? в коде все равно надо полный путь указывать? или как?

Вот моя проблема (речь о использовании префикса)
1) Местонахождение qrc относительно корня проекта: res/admin.qrc
2) В папке res находятся подкаталоги с иконками начиная с папки images
2) Файл qrc
Цитата

    <qresource prefix = "images/22x22/">
     <file>connect_logo.png</file>

Результат хрен
Цитата

usr/bin/rcc -name admin_db res/admin_db.qrc -o tmp/debug/qrc_admin_db.cpp
RCC: Error in 'res/admin_db.qrc': Cannot find file 'connect_logo.png'
make: *** [tmp/debug/qrc_admin_db.cpp] Ошибка 1

Чо не так?
Если укажу
Цитата

    <qresource prefix = "images/22x22/">
     <file>images/22x22/connect_logo.png</file>

То скомпилится, но видно не будет иконок в приложении... короче я запутался

Добавлено через 11 минут и 24 секунды
Стоп... чуть разобрался....
prefix - это получается виртуальная папка, которой не существует и ее надо добавлять в код уже... но зачем
PM MAIL   Вверх
null56
Дата 16.7.2009, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 6
Всего: 12



короче видимо какое - то виртуальное разделение можно делать с помощью префикса... вроде механизм понятен... если есть чего добавить по префиксу, отпишитесь
PM MAIL   Вверх
SwordOfDeath
Дата 19.7.2009, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 16.10.2007

Репутация: нет
Всего: нет



Обрати внимание на косую черту в конце префикса!... У тебя ее нет... prefix "/res" + path "1.png" = "/res1.png"
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1224 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.