crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QQuickImageProvider, Invalid image provider
Vilgeforc
  опции профиля:
сообщение 17.3.2015, 23:41
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 19.2.2014
Пользователь №: 4060

Спасибо сказали: 3 раз(а)




Репутация:   0  


Приветствую!
Написал провайдер изображений, зарегистрировал его, однако при попытке использовать получаю такую ошибку:"QML Image: Invalid image provider: image://provider/green". Никак не могу понять что не так.
В QML  использую так:
source: "image://provider/green";

Регистрировать пробовал так и так:
view.engine()->addImageProvider(QLatin1String("provider"), temp->getImageProvider());
view.rootContext()->engine()->addImageProvider(QLatin1String("provider"), temp->getImageProvider());

Метод получения Pixmap выглядит так:
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize){
       int width = 100;
       int height = 50;

       if (size)
           *size = QSize(width, height);
       QPixmap pixmap(requestedSize.width() > 0 ? requestedSize.width() : width,
                      requestedSize.height() > 0 ? requestedSize.height() : height);
       pixmap.fill(QColor(id).rgba());

       return pixmap;
   }
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Vilgeforc
  опции профиля:
сообщение 19.3.2015, 14:12
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 12
Регистрация: 19.2.2014
Пользователь №: 4060

Спасибо сказали: 3 раз(а)




Репутация:   0  


QQuickView view;
EngineImageProvider *provider = new EngineImageProvider();
view.engine()->addImageProvider(QLatin1String("provider"), provider);
view.setSource(QUrl(QStringLiteral("qrc:/main.qml")));


Так всё заработало. Ошибку выдавало из-за того, что провайдер устанавливался после источника, и естественно на момент инициализации его ещё не было.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 8:23