Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Гурман от Май 12, 2015, 21:56



Название: Чудеса с картинками в плагинах
Отправлено: Гурман от Май 12, 2015, 21:56
Есть два очень похожих плагина, проекты лежат в соседних каталогах. У плагинов есть разные картинки, которые для простоты и удобства были сделаны одноименными. Плагины грузятся, картинки берутся по их адресам в ресурсах, и рисуются с помощью QPixmap на QGraphicsScene. После сборки плагины находятся в разных DLL с разными именами, у них не совпадают внутри разные функции, но для простоты совпадают имена сегментов интерфейсов плагинов. Впрочем, это на их работе никак не сказывается, кроме одного - у обоих плагинов на сцене оказывается одна и та же картинка, хотя везде очевидно, что подшиваются разные. Отрисовка производится внутри плагина, конкретно в его paint, а каринтка извлекается из ресурса в конструктора основного класса самого плагина. То есть доступ снаружи плагина к ресурсам плагина не осуществляется, только внутри него самого.

Стоит переименовать картинку либо её префикс в ресурсе - всё нормально начинает работать, у каждого плагина появляется своя картинка.

Это чего получается - при загрузке плагинов соответствующий движок собирает из них графические ресурсы, и коммунизирует их? То есть, можно в одном плагине обратиться к графическим ресурсам другого, если известен маршрут? Что-то не помню в описаниях такой возможности, считал, что ресурсы локальны для плагина (как и для исполнимого приложения).


Название: Re: Чудеса с картинками в плагинах
Отправлено: Old от Май 12, 2015, 22:08
Да, ресурсы локальны для каждого процесса. Но все плагины загружаются в одно адресное пространство процесса, поэтому они доступны друг другу.


Название: Re: Чудеса с картинками в плагинах
Отправлено: fdfsdfgjfh от Май 14, 2015, 20:42
Данная проблема и у меня.
в windows icon отображается
в linux icon не отображается.

пробовал явно указать префикс но не получилось.
плагин не видит свои ресурсы :( но видит ресурсы приложения


Название: Re: Чудеса с картинками в плагинах
Отправлено: Гурман от Май 14, 2015, 23:13
Если префиксы разные, то должно и в Linux без проблем работать. Я ещё своё приложение для него не собирал.

Я сделал так, чтобы файлы .qrc генерилсь при создании Makefile проекта, с помощью qmake. И в качестве префикса используется целевое имя сборки, для разных подпроектов они разные. Но у меня там где есть проблема, файлы ресурсов небольшие. Подробнее здесь (http://www.prog.org.ru/topic_28889_0.html).


Название: Re: Чудеса с картинками в плагинах
Отправлено: fdfsdfgjfh от Май 17, 2015, 15:04
Разобрался

ошибка была в названии qrc файла и префикса.

Так что следите за корректностью названий ресурсов