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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: ресурсы из динамической библиотеки?  (Прочитано 4808 раз)
Denjs
Гость
« : Май 14, 2011, 15:45 »

как бы мне сделать так, что бы объект который сгенерирован в недрах динамически подключаемой библиотеки, мог использовать ресурсы, которые были подключены к проекту при сборке этой самой библиотеки?

а то всякие "new QIcon(":mysynonym")"  не проходят... что вызывает у меня немного печали и огорчение.

подозреваю, что объект будучи переданным в приложение начинает пытаться использовать ресурсы к немцу подключенные? и не находит оных естественно...

ну или подскажите технологию как можно подключать к приложению ресурсы из внешней библиотеки? что бы можно было подключая разные библиотеки получать на вуходе того самого "new QIcon(":mysynonym"); " азные иконки - которые к этой библиотеке подключены?

пользую Qt 4.7.2 если это важно...
библиотека на Qt писанная, загружающая программа - тоже.
Записан
asvil
Гость
« Ответ #1 : Май 14, 2011, 18:31 »

Q_INIT_RESOURCE() ?
Записан
Denjs
Гость
« Ответ #2 : Май 14, 2011, 19:17 »

в ассистанте написано что он может помочь для ресурсов из статических библиотек.
кроме того, это я уже проверял...  В замешательстве
Записан
ieroglif
Гость
« Ответ #3 : Май 14, 2011, 21:27 »

а если хранить в либах пути ресурсов (типа ":myres"), а из либы вытаскивать по именам их QByteArray?
QImage QIcon и прочие легко берут данные из байтов
Записан
Denjs
Гость
« Ответ #4 : Май 16, 2011, 06:15 »

а если хранить в либах пути ресурсов (типа ":myres"), а из либы вытаскивать по именам их QByteArray?
QImage QIcon и прочие легко берут данные из байтов
да вроде как и КюРесурсес не проблема инициировать по ссылке на кусок бинарника...
Вопрос тогда в том, как "вкомпилить" ресурсы в библиотеку а потом в самой библиотеке - получить ссылку на кусок "вкомпиленных" бинарных данных.

Потому что кажется даже в библиотеке (в функциях в ней определённых) не выходит по синониму или пути обращаться к ресурсам... но это я ещё ещё перепроверю... может у меня не работает это внутри объекта а в непосредственно самой функции - будет работать... >_<

можно конечно скомпилить ресурс в .rcc и потом его динамически подключать... но не хочу таскать 2 файла (библиотечка и файл ресурсов).
« Последнее редактирование: Май 16, 2011, 06:35 от Denjs » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Май 16, 2011, 09:32 »

Вот смотри как сами тролли это делают для хранения своего лого:

qmessagebox.qrc:
Код
XML
<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/trolltech/qmessagebox">
  <file>images/qtlogo-64.png</file>
</qresource>
</RCC>
 

Код
C++ (Qt)
static void initResources()
{
...
Q_INIT_RESOURCE_EXTERN(qmessagebox)
Q_INIT_RESOURCE(qmessagebox);
...
}

Код
C++ (Qt)
void QMessageBox::aboutQt(QWidget *parent, const QString &title)
{
...
QPixmap pm(QLatin1String(":/trolltech/qmessagebox/images/qtlogo-64.png"));
...
}
Записан

Qt 5.11/4.8.7 (X11/Win)
danquimby
Гость
« Ответ #6 : Май 17, 2011, 10:02 »

вопрос на засыпку , а где они это путь берут ?
Код:
QPixmap pm(QLatin1String(":/trolltech/qmessagebox/images/qtlogo-64.png"));
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #7 : Май 17, 2011, 10:05 »

вопрос на засыпку , а где они это путь берут ?
Код:
QPixmap pm(QLatin1String(":/trolltech/qmessagebox/images/qtlogo-64.png"));
Странный вопрос.
Это же путь относительно корня ресурсов. Они его сами и создают в qmessagebox.qrc.
Записан

Qt 5.11/4.8.7 (X11/Win)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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